Test json encoding for NaN, pd.NaT, pd.Index
If encoders aren't relevant, raise NotEncodable instead of returning None

Returning None for encoders failed in the case where the encodable value
was actually None, like pd.NaT -> None
:lipstick:
rm masked encoding encoder, as it's covered in the pandas, numpy, and datetime encoders
Check for pandas objects that subclass datetimes in the datetime encoder