Fixes bugs and renames slice_len to slice_shape

Renames utils.slice_len to utils.slice_shape

Addresses integer math corner-case resulting in inaccurate lengths in certain cases (i.e. slice(4,9,4) should have length 2)

Adds check to utils.slice_shape and utils.fix_slice to allow 'shape' to be an int
Removes slice.stop > size error in utils.fix_slice

Comments out error case where slice_.stop > size - this is more along the lines of how numpy functions (a slice can 'stop' at an index greater than the size of the array)

Updates tests
Initial commit of multi dimensional trials
Improvements to value_slice calculation
More improvements to value_slice/brick_slice

Getting very close to the proper solution.  Most slices work, only one (known) edge case remaining to be sorted out.
Finishes adjustments to value_slice

Appears to be fully functional for any slicing.  Requires MUCH more extensive testing (with differing slices, brick sizes, total domain sizes, etc).  Preliminary tests look promising.
Downgrades logging to debug level
Fixes list slicing; cleans up functions

Addresses last few issues, particularly with list-based slicing
Cleanup of functions & logging
Implements get_values function
Adds dimension property to rtree
Adds bricking_utils module
Switches to using bricking_utils functions
Moves more functions to bricking_utils
Tweaks brick_slice for failing step case

Fixes to step adjustment logic
Adds option for HDF persistence

Adds HDF persistence following the same general pattern as the full coverage model & persistence layer
Adds testing for 1D and 3D cases
Improves console output for trials
Switches to using utils.slice_shape

Removes bricking_utils.get_shape_from_slice and replaces usage with utils.slice_shape which uses a less costly mechanism for calculating the shape