Given a set of user GO ids, return GO ids grouped under the "GO high" terms.

        Example of a grouped go list:

            gos = ['GO:0044464':[    # grp_term: D1 cell part
                       'GO:0005737', # child:    D3 cytoplasm
                       'GO:0048471', # child:    D4 perinuclear region of cytoplasm
                   'GO:0016020':[    # grp_term: D1 membrane
                       'GO:0098589', # child:    D2 membrane region
                       'GO:0005886', # child:    D2 plasma membrane
                  ]

def _init_h2us(self, fnc_most_specific):
        """Given a set of user GO ids, return GO ids grouped under the "GO high" terms.

        Example of a grouped go list:

            gos = ['GO:0044464':[    # grp_term: D1 cell part
                       'GO:0005737', # child:    D3 cytoplasm
                       'GO:0048471', # child:    D4 perinuclear region of cytoplasm
                   'GO:0016020':[    # grp_term: D1 membrane
                       'GO:0098589', # child:    D2 membrane region
                       'GO:0005886', # child:    D2 plasma membrane
                  ]
        """
        # Header GO IDs are main. User GO IDs are as specified by the user
        hdrgo2usrgos = cx.defaultdict(set)
        # Contains user GO IDs which are also header GO IDs, plus user main GO if needed
        hdrgo_is_usrgo = set()
        _go2nt = self.gosubdag.go2nt
        objhi = GrouperInit.GetGoidHigh(self.gosubdag, self.hdrobj.hdrgos,
                                        self.most_specific_fncs[fnc_most_specific])
        for goid_usr in self.usrgos:
            goid_main = _go2nt[goid_usr].id
            # Add current GO ID to parents_all in case curr GO ID is a high GO.
            goid_high = objhi.get_goid_high(goid_main)
            # Don't add user GO ID if it is also the GO header
            if goid_main != goid_high:
                hdrgo2usrgos[goid_high].add(goid_usr)
            elif goid_high not in hdrgo2usrgos:
                hdrgo2usrgos[goid_high] = set()
            if goid_main == goid_high:
                hdrgo_is_usrgo.add(goid_main)
                if goid_main != goid_usr:
                    hdrgo_is_usrgo.add(goid_usr)
        # Initialize data members
        self.hdrgo2usrgos = hdrgo2usrgos
        self.hdrgo_is_usrgo = hdrgo_is_usrgo