direct conversions for dt64 units
ATM _almost_ all datetimestruct conversions in tslibs use PANDAS_FR_ns.  The exceptions are two functions in tslibs.conversions that convert non-nano datetime64 to datetime64[ns].  This PR replaces those two calls with a more performant implementation (asvs on the way).

The perf improvement is available b/c the functions currently convert dt64[not-ns] --> datetimestruct and then convert datetimestruct-->dt64[ns].  But for most units the conversion is just a multiplication, so we can cut out the convert-to-dtstruct step.

Finally `np_datetime.convert_datetime_to_dtstruct` is not actually used, but is included for exposition.  After this PR, ujson notwithstanding (#19486), the remaining src/datetime files could be simplified quite a bit