[CLN] Replace np_datetime code with numpy versions
@jreback we discussed this briefly, hopefully you'll have better luck with it than me.

pandas/_libs/src/datetime/np_datetime.c and np_datetime_strings.c share a ton of code with numpy:

https://github.com/numpy/numpy/blob/master/numpy/core/src/multiarray/datetime.c
https://github.com/numpy/numpy/blob/master/numpy/core/src/multiarray/_datetime.h
https://github.com/numpy/numpy/blob/master/numpy/core/src/multiarray/datetime_strings.c
https://github.com/numpy/numpy/blob/master/numpy/core/src/multiarray/datetime_strings.h

My attempts so far to "get at" these numpy functions via `#include` have failed, someone with stronger C-fu than me will have to try.  The testing ground I've been trying on is src/ujson/python/objToJSON.c since all of the np_datetime functions it uses have drop-in counterparts in numpy:

PANDAS_DATETIMEUNIT --> NPY_DATETIMEUNIT
PANDAS_FR_ns --> NPY_FR_ns (ditto s, ms, us)
pandas_datetimestruct --> npy_datetimestruct

get_datetime_iso_8601_strlen --> identical

make_iso_8601_datetime has fewer args in the pandas version, largely since we removed unnecessary ones a few months ago.  Adding hard-coded args in should make them equivalent.

convert_pydatetime_to_datetimestruct also looks like dummy arguments need to be re-introduced to make them identical.

convert_datetime_to_datetimestruct has a different first-argument (again one we simplified) but is functionally identical.
convert_datetimestruct_to_datetime ditto.

parse_iso_8601_datetime has non-trivial differences IIRC.

