Inversion API refactor

I'm replacing the `fatiando.inversion` package with the [Object Oriented prototype](http://nbviewer.ipython.org/urls/raw.github.com/leouieda/new-inversion/oop/trial_inversion_refactor.ipynb)). All the old code will be deleted to make way for the new API. 

The new package will be organized as:

- `inversion`
  - `base`: the base `Objective` and `MultiObjective` classes that represent objective functions
  - `solvers`: optimization functions like `overdetermined` and `levmarq` that take functions for value, Hessian and gradient calculation. Used by `Objective` to solve problems.
  - `datamisfit`: data misfit classes like `L2Norm`, subclasses of `Objective`
  - `regularization`: regularization classes like `Damping`, `Smoothness`, `TotalVariation`. Subclasses of `Objective`.

All other modules that used the old code will have to be adapted and recipes fixed. Modules to adapt:
- [ ] `gravmag.basin2d`
- [ ] `gravmag.euler`
- [ ] `gravmag.eqlayer`
- [ ] `gravmag.eqlayer`
- [ ] `geothermal.climsig`
- [ ] `seismic.epic2d`
- [ ] `seismic.profile`
- [ ] `seismic.srtomo`