Sends a search request to emby, returns results

    |coro|

    Parameters
    ----------
    query : str
      the search string to send to emby
    sort_map : dict
      is a dict of strings to ints. Strings should be item types, and
      the ints are the priority of those types(for sorting).
      lower valued(0) will appear first.
    strict_sort : bool
      if True, then only item types in the keys of sortmap will be
      included in the results

    Returns
    -------
    list
      list of emby objects

async def search(self, query,
            sort_map = {'BoxSet':0,'Series':1,'Movie':2,'Audio':3,'Person':4},
            strict_sort = False):
    '''Sends a search request to emby, returns results

    |coro|

    Parameters
    ----------
    query : str
      the search string to send to emby
    sort_map : dict
      is a dict of strings to ints. Strings should be item types, and
      the ints are the priority of those types(for sorting).
      lower valued(0) will appear first.
    strict_sort : bool
      if True, then only item types in the keys of sortmap will be
      included in the results

    Returns
    -------
    list
      list of emby objects
    '''
    search_params = {
      'remote'     : False,
      'searchTerm' : query
    }
    if strict_sort:
      search_params['IncludeItemTypes'] = ','.join(sort_map.keys())

    json  = await self.connector.getJson('/Search/Hints/', **search_params)
    items = await self.process(json["SearchHints"])

    m_size = len(sort_map)
    items  = sorted(items, key = lambda x : sort_map.get(x.type, m_size))

    return items