Add an 'Add' benchmark
Added complex `I`.
Updated `is_canonical` for Mul to handle `Complex`
Updated `dict_add_term_new` for `Complex`
Basic updates for handling complex numbers in `pow`
Basic Complex addition tests
Implement characteristic polynomial
Merge branch 'master' into char_poly

Conflicts:
	src/dense_matrix.cpp
	src/tests/matrix/test_matrix.cpp
Add a description about `char_poly`
Updated dict_add_term_new to handle complex coefficients

Now dict doesn't complex terms with power 1 or -1.
These terms are directly incorporated into the coeff.
Rest additions are dependent functions for the same.
Added tests for complex multiplication and subtraction

Tests have been added to check if the complex is multiplied with
coeff instead of adding to dict when its power is 1.
Added tests for complex div. Fixed some issues.

* Fixed printing for mul in case of complex coef.
* Fixed the else condition for add, mul, div, sub in Rational.
* Added tests for complex division
Updated complex printing

In case the real or the imaginary part is zero, it is not printed
Added tests.
Updated printing of complex power. Added tests.
Added tests for complex power
Removed TODO comments
CMake: include our headers first

This should have been part of PR #246. Now the Python wrappers compile fine
even if older csympy installation is present.
Add Python wrappers for complex numbers

Test SymPy <-> CSymPy conversion as well.
Use csympy symbols in the tests
Added suggestions mentioned in PR

The following changes have been made:
* Fixed printing when imaginary part is 1 or -1
* Fixed docstring
* Added missing insert and erase statements
* Pretty Printing of negative numbers: #259
* Added tests