Move NaT to self-contained module
This completes the messing-with-NaT sequence of PRs.

Highlights:
- Removes duplicate definitions of `_nat_strings` across a couple of modules.
- `tslibs.nattype` relies on `util` but is otherwise free of pandas dependencies.
- `lib` currently depends on `tslib`; this is a big step towards changing this (note that in setup.py tslib is declared as depending on lib.  I think that declaration is wrong, but thats a separate issue.  Regardless, DAG for the win)

Lowlights:
- We have to patch some of the `NaT` method docstrings after importing into `tslib`.  I'm not wild about that.

Optimizations to consider:
- If we cdef the constant NaN at the module-level and return it instead of `np.nan`, the property lookups are about 15% faster.  The downside of this is that `NaT.day is np.nan` is no longer True.
- `@cython.final` may offer an optimization for some methods in `cdef class`es.  Because `_NaT` no longer subclasses `_Timestamp`, we can apply that optimization to `_Timestamp` methods, too.  No idea what level of speedup we get.

- [ ] closes #xxxx
- [ ] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry
