text: Title: Histogram error with `>u2` dtype
  Body: The histogram function when plotting does not work with certain dtypes. Example of this:
  
  ```python
  import dask.array as da
  import hyperspy.api as hs
  data = da.arange(0, 10000, dtype='>u2').reshape((100, 100))
  s = hs.signals.Signal2D(data).as_lazy()
  s.plot()
  # Press H
  ```
  
  Gives the error message:
  ```python
  File "hyperspy/hyperspy/signal_tools.py", line 964, in plot_histogram
      self.hist_data = self._get_histogram(data)
  File "hyperspy/hyperspy/signal_tools.py", line 922, in _get_histogram
      return numba_histogram(data, bins=self.bins,
  
  File "hyperspy/hyperspy/misc/array_tools.py", line 396:
  def numba_histogram(data, bins, ranges):
      <source elided>
      # Adapted from https://iscinumpy.gitlab.io/post/histogram-speeds-in-python/
      hist = np.zeros((bins,), dtype=np.intp)
      ^
  
  This error may have been caused by the following argument(s):
  - argument 0: Unsupported array dtype: >u2
  ```
  
  The `>u2` dtype sometimes comes from reading raw binary files from memory, via `numpy.memmap`. Ergo, the dtype is set directly when loading the file. While it is possible to change the dtype manually to something else, like `np.uint16` it would be nice to avoid this if possible.
  
  The error seems to stem from the `numba_histogram` function utilizing numba, which does not support these types of dtypes (like `>u2`).
  
  I'm not sure how best to fix this. One way could be to check if the data is this type of dtype, and if it is, convert it to `np.uint16`.