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)
@ovillellas , this is where I think the previous logic was wrong. Typically ufunc.nout is 1, so i only gets the value 0, and indexing with -0 just takes the first array, i.e. the first function input.