Fix `mul` simplification
Remove the `for` loop inside `from_dict`
Add `mul` benchmark
Refactor `Mul::from_dict`
Merge branch 'master' into Fix_Simplification
Remove commented out code
Implement new dict_add_term
Improve readability of code
Remove mul benchmark
Remove empty lines
Use the old `Mul::from_dict` from master
Added `Complex` class. Added constructor.

Updated the CMakelist to include complex class.
Add a test for `expand`
Travis: Test Python in out of tree build

By default we should be using out of tree build, so we now test that by
default. The in tree build is only tested few times so that it works (both with
and without Python 2.7), but for all the Python versions, we just check the out
of tree build.
Added is_canonical() to Complex
Improve a comment about std::atomic
Added basic API functions for Complex class

* is_canonical()
* __hash__
* __eq__
* __str__

There are some issues with the __str__ function. Will discuss on
PR
Added functions from_mpq and from_two_rats in Complex
Merge pull request #222 from certik/comment

Improve a comment about std::atomic
Use std::atomic for hash_