text: Title: ENH: remove global vars in adapters
  Body: ### Is your feature request related to a problem? Please describe
  Currently we are using global vars to store method fallbacks.
  
  For example,
  https://github.com/xprobe-inc/xorbits/blob/7c86482bf61619a053f0078cb52a6bea40225f0d/python/xorbits/numpy/__init__.py#L74
  
  ### Describe the solution you'd like
  Generally, global vars should be avoided. We can cache the return values of
  https://github.com/xprobe-inc/xorbits/blob/7c86482bf61619a053f0078cb52a6bea40225f0d/python/xorbits/numpy/numpy_adapters/core.py#L74
  so that the global vars could be removed.
  
  For the way to cache a functions' results, you can refer to https://docs.python.org/3/library/functools.html#functools.lru_cache
  
  ### Describe alternatives you've considered
  
  ### Additional context
  
  