code: def add_new_header_groups(self, groups):
          
          already_present = []
          for group in groups:
              col_names = self.dm[self.dm['group'] == group].index
              for col in col_names:
                  if col not in self.grid.col_labels:
                      col_number = self.grid.add_col(col)
                      # add to appropriate headers list
                      # add drop down menus for user-added column
                      if col in self.contribution.vocab.vocabularies:
                          self.drop_down_menu.add_drop_down(col_number, col)
                      elif col in self.contribution.vocab.suggested:
                          self.drop_down_menu.add_drop_down(col_number, col)
                      elif col in ['specimen', 'sample', 'site', 'location',
                                   'specimens', 'samples', 'sites']:
                          self.drop_down_menu.add_drop_down(col_number, col)
                      elif col == 'experiments':
                          self.drop_down_menu.add_drop_down(col_number, col)
                      if col == "method_codes":
                          self.drop_down_menu.add_method_drop_down(col_number, col)
                  else:
                      already_present.append(col)
          return already_present
docs: compile list of all headers belonging to all specified groups
          eliminate all headers that are already included
          add any req'd drop-down menus
          return errors