convert array of netCDF4.datetime objects to numpy.datetime64 array to support virtual_variable indexing, #121
restrict the conversion of netCDF4.datetime objects to numpy.datetime64 object to valid years (1677<time<2262)
Handle arbitrary shape time arrays in nctime_to_nptime.  Also added the ability to fallback to netCDF4.datetime objects since this solution does not fix the problem for all calendars in all situations.
initial implementation of support for NetCDF groups
cleanup fallback code a bit
use IOError; safer recursion; don't worry about group cycles
Require only numpy 1.7 for the benefit of readthedocs

ReadTheDocs comes with pre-built packages for the basic scientific python
stack, but some of these packages are old (e.g., numpy is 1.7.1). The only way
to upgrade packages on readthedocs is to use a virtual environment and a
requirements.txt.

Unfortunately, this means we can't upgrade both numpy and pandas
simultaneously, because pandas may get built first and link against the wrong
version of numpy. We inadvertantly stumbled upon a work around to build the
"latest" docs by first installing numpy in the (cached) virtual environment,
and then later (in another commit), adding pandas to the requirements.txt
file.

However, this is a real hack and makes it impossible to maintain different
versions of the docs, such as for tagged releases. Accordingly, this commit
relaxes the numpy version requirement so we can use a version that readthedocs
already has installed. (We actually don't really need a newer version of numpy
for any current functionality in xray, although it's nice to have for support
for missing value functions like nanmean.)
simplify group access to avoid recursion; test missing group error
Add further testing for single element time ordinals.
Expanded warnings for when non numpy.datetime64 arrays are returned.
Use context manager for warnings in test_conventions.py.
filter warnings from earlier tests
correct filter message for warnings
add test to catch fallback warnings, insure returning a numpy array during fallback of single element
fix python 3 build; right way to test exception is raised
Only copy datetime64 data if it is using non-nanosecond precision.
Convert datetime objects to datetime64 upon variable creation in
an attempt to standardize time handling.

NOTE: virtual variable slicing is now broken, so do not submit.
Added utils.safe_timestamp() which avoids issues when datetime[ns]
variables get cast to integers.