Add export functions based on the core PyTables (HDF5) output format

This allows other applications to use the HDF5 file for output creation
and not rely on the ModelControllers to create the output.
These locks are not present in the BaseModelController.
Move the time_chunk and horiz_chunk parameters to the CachingModelController
Return the particles from the BaseModelController

We have them, they are sitting in memory, might as well return them.
Test to make sure the model's time bounds are within the dataset bounds
Move the bathy_path parameter to the constructor.
If we are not exporting anything, don't log a message saying we are
Rearrange the kwarg getters, add a check for the "time_method" parameter
Cleanup
Improve the model_controller tests like WHOA