Removed old inversion modules

Got rid of all the modules and will start writing things from scratch
Added safe funcs in utils for sparce matrices

Functions safe_dot, safe_solve and safe_diagonal do these operations
after checking if the inputs are dense or sparse. Then use the
appropriate method (e.g., numpy or scipy).
Started the base Objective class

This will be the base class for every data-misfit and regularization. It
interfaces with the solvers and overloads operators. So far I have just
the basic skeleton.
inversion.solvers module for optimizers

The functions that do the optimizations will be placed in the
fatiando.inversion.solvers module. These functions will take functions
that calculate hessian, gradient, value, etc as arguments and then
optimize for the parameter vector. Most functions should be generators
(using yield to return the solution at each step). The Objective class
will use these functions.

This commit implements the linear problem solver.
Linear solver in Objective

Implemented the method for the linear solver in Objective. Wraps
solvers.linear
Newton's method in inversion.solvers

Implemented Newton's method in solvers. The stats of the gradient
descent are recorded in an optional stats dict.
Added Levemberg-Marquardt and Steepest Descent

Both with documentation already in the inversion.solvers module.
Added reference to Kelley in solvers.steepest

Forgot before. Reference to Iterative Methods of Optimization.
Better docstring for inversion.solvers

Added the list of functions and a reference
Added ACO-R to inversion.solvers

Ant Colony Optimization for Continuous Domains by Socha and Dorigo
(2008). A heuristic optimization method based on the behaviour or
foraging ants. This is the extension for continuous domains. Doesn't
need to encode real numbers.
Reduced default archive size in ACO-R

20*ants seems a bit much so I reduced it to 10x. Works on the prototype.
Docstring of solvers.steepest was wrong

Damn copy paste. Had things from levmarq instead.
Added the solver methods to Objective

Made the solver methods that call functions in inversion.solvers
Operator overloads for Objective

Added the overloads for sum, multiply by scalar and increment (+=).
All of these produce MultiObjective instances.
Started MultiObjective
Fix rst files for inversion docs

Moved filenames around so that docs build for the inversion package
Finished MultiObjective

Was missing all the docstrings.
Missing division import in solvers and base

Forgot the from __future__ import division line and would get errors due
to integer division.
Module inversion.misfit with data-misfit funcs

For now there is only the L2Norm data-misfit function. This is what is
subclasses when implementing new inverse problems.
Converted geothermal.climsig to new framework

Unified the inversion inside a single class that takes a mode argument
to distinguish between linear and abrupt changes