Many improvements to Grid and Dimension.

- make grid.compute* methods private
- add methods grid.p_centers_with_ghost and grid.p_edges_with_ghost
- simplify grid._compute_p_centers and grid._compute_p_edges
- fix typos in docstrings
- simplify grid._compute_c_centers_with_ghost
- remove dimension.num_ghost
- make _centers and _edges exist separately for each Dimension
- make cached centers and edges exist separately for each Grid
- pass num_ghost as argument to dimension.*_with_ghost()
- don't cache dimension or grid coordinate arrays with ghosts
- print function for Grid with useful information
- mapc2p does not take Patch as an argument (now only takes 1 argument, the list of coordinate arrays)
- add grid.c_center and grid.p_center methods to give coordinates of a single cell center
- add grid.plot() method for 2D grids
- expand grid docstring
Fix tabs and spelling in geometry.py.

Also make better use of mapping function in annulus advection example.
Add check_validity() method for Grid.
Make mapc2p function signature match that used in visclaw.

This makes it so that the expected inputs to mapc2p are the sequence
of coordinate arrays x,y,z.

Resolves #73 (more than 3 years later!)
Clear cached grid coordinates when mapping is changed.
Print a warning if the wrong signature for mapc2p is suspected.
Merge branch 'ketch-improve_geometry'