ENH: non-uniform grids

Adding the ability to define a non-uniform grid for mapping. This is
done by changing the grid_limits input variable to a grid_dimensions
variable which is a tuple containing the (z, y, x) coordinates defined
by the user. Therefore these coordinates can either define a uniform or
non-uniform grid.