text: Title: Handle lists and arrays as `x`, `y` in `density_scatter` and siblings
  Body: This simple example
  
  ```py
  import numpy as np
  
  from pymatviz import density_scatter
  
  
  arr = np.arange(5)
  lst = list(range(5))
  
  ax = density_scatter(x=arr, y=arr)
  ax = density_scatter(x=lst, y=lst)
  ```
  
  embarrassingly raises
  
  ```py
  File ~/dev/pymatviz/pymatviz/parity.py:43, in hist_density(x, y, df, sort, bins)
       39 x, y = df_to_arrays(df, x, y)
       41 data, x_e, y_e = np.histogram2d(x, y, bins=bins)
  ---> 43 zs = scipy.interpolate.interpn(
       44     (0.5 * (x_e[1:] + x_e[:-1]), 0.5 * (y_e[1:] + y_e[:-1])),
       45     data,
       46     np.vstack([x, y]).T,
       47     method="splinef2d",
       48     bounds_error=False,
       49 )
  ...
      611 result[idx_valid] = interp.ev(xi[idx_valid, 0], xi[idx_valid, 1])
  --> 612 result[np.logical_not(idx_valid)] = fill_value
      614 return result.reshape(xi_shape[:-1])
  
  ValueError: cannot convert float NaN to integer
  ```