Implement wrappers for Matrices

* Now the Cython code compiles without any errors
* I introduced a new class `VecBasic` which contains a `vec_basic` object
  from dict.h
* I also introduced a new constructor for DenseMatrix class so I could avoid
  using vector[RCP[const csympy.Basic]] in Cython
Implement `__sympy__()` method and `densematrix()` function
Add tests for `get` method and fix a typo

* Add tests for `get()` method
* Use `_sympy_` instead of `__sympy__`
* Raise an exception if matrix type is not `DenseMatrix`.
Add tests for sympy conversion and `set()` method
Add tests for sympy to csympy conversions
Fix a bug in __richcmp__ method for Matrix classes
Merge branch 'master' into wrappers

Conflicts:
	src/sparse_matrix.cpp
Refactor and Fix compiler warning

* Rename `push` to `push_back` in VecBasic class
* Fix the compiler warning due to the missiing distructor in MatrixBase class
Remove VecBasic API from DenseMatrix

Remove the VecBasic interface from DenseMatrix. The VecBasic is there for
Python wrappers only and it should not pullute the C++ interface.

Implement VecBasic::get_vec() and use it in the Python wrappers to pass the
vec_basic directly.
Improve comment to VecBasic
Introduce vec_basic in Cython

Use it instead of VecBasic
Remove VecBasic
Merge pull request #1 from certik/wrappers-fix

Wrappers improvements
Use vec_basic everywhere
Refactor Derivative._sympy_()

The code is now much simpler and less hackish.
Refactor Basic.args()
Merge pull request #2 from certik/wrappers2

Wrappers simplification
Merge pull request #280 from thilinarmtb/wrappers

Implement wrappers for Matrices
added setuptools as default installer
Change method signatures of some methods in MatrixBase

* `inv()` had a wrong return type, i.e. `RCP<const MatrixBase>`, now it
  returns `MatrixBase *`
* Avoided returning references and changed the return type to
  pointers in the following functions:
  `add_matrix()`
  `mul_matrix()`
  Reference: http://stackoverflow.com/a/752699