Added SparseLIL class, types.h, minor refactoring

* SparseLIL class will be used when we need to manipulate the matrix on
element level (e.g. for LU), conversion to/from Sparse will be available
* types.h contains global typedefs as for "unsigned int", etc
* "using namespace..." shouldn't be done in headers, use std::
explicitly, it should be up to each cpp file what namespace is uesd
* algebra.h and mesh.h start with specific type definitions now