Array support for np.datetime64 and np.timedelta64

This includes support for the basic arithmetic ufuncs.
It also augments ufunc testing with more values (including interesting ones such as 0 or NaN), and fixes a couple buglets found when doing so.

(this is part of issue #499)
It is because the "types" attribute of a ufunc only tell you about the basic type, not the dtype details, so you don't know whether the argument should be "m8[s]" (seconds), "m8[D]" (days), etc.