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.