A Grid class to facilitate manipulation of grid data

**Original prototype**: http://nbviewer.ipython.org/github/fatiando/prototypes/blob/master/grid-class.ipynb

This PR implements a `Grid` class in `fatiando.gridder`. 
The class wraps all the functionality of the existing functions in the module.
It adds extra support for:
* plotting (contour, contourf, pcolor)
* automatic selection of a proper colormap
* adjust the range of diverging colormaps to make the zero value be in the middle of the colorbar
* [Cartopy](http://scitools.org.uk/cartopy/) projections (without importing it)
* Input text, CSV, and [ICGEM](http://icgem.gfz-potsdam.de/ICGEM/) `.gdf`  files
* Output to CSV

There is a draft version of a tutorial to use this class in the [fatiando/tutorials](https://github.com/fatiando/tutorials) repo: http://nbviewer.ipython.org/github/fatiando/tutorials/blob/master/Working_with_grids_and_making_maps.ipynb

TODO:
- [ ] Make a `cut` method to extract a slice of the grid

Checklist:
- [ ] Create/update docstrings
- [ ] Check the documentation build
- [ ] Make tests for new code
- [ ] All tests pass
- [ ] Can be merged
- [ ] Changelog entry