Refector detection code into classes.

Add  in some new classes that will make future
configuration/manipulation easier. NCData wraps the underlying netCFD4
datasets, providing a quick and easy way of accessing these by date.
GlobalCyclones uses a NCData object to generate cyclones at a given
time. CycloneTracker takes a GlobalCyclones object and tries to match
cyclones in one timestep to the next.