Fix an important bug (don't steal the dict_)

We can't steal the dict_, because sometimes there is more than one reference to
Mul, so all the other Mul's then become corrupt.

Test was added. We can enable the Python test, as it works now.
Steal the dictionary only for refcount_ == 1

This brings back the optimal speed.
Only access refcount_ in non-thread safe mode

Just to be sure. Add documentation.
Speedup the other branch
Do a copy in pow.cpp rather than move

Because the refcount is not always 1 here.
Refactor the code
Only use refcount_ with WITH_CSYMPY_RCP=yes
Refactor the .travis.yml file, add Python 3.4
Merge pull request #251 from certik/travis

Refactor the .travis.yml file, add Python 3.4
implement inverse using fraction free LU decomposition
Merge pull request #250 from certik/dict_move

Fix an important bug (don't steal the dict_)
Implement matrix inverse by LU decomposition
Enhance gaussian elimination solve and gauss jordan solve

Now both `gaussian_elimination_solve` and `gauss_jordan_solve` can take
a column matrix instead of a single column vector. Previously to solve two
systems, Ax = b_{1} and Ax = b_{2} (b_{1} and b_{2} are column vectors), one
had to call either of the above functions two times. This is inefficient as
for each call, gauss jordan form or row echelon form of A has to be
calculated. Now one can call either of the functions with B = [b_{1}, b_{2}],
saving extra calculations.
Implement matrix inverse using gauss jordan elimination
Merge pull request #252 from thilinarmtb/inverse

Implement Matrix inverse
Merge branch 'master' into char_poly

Conflicts:
	src/dense_matrix.cpp
	src/tests/matrix/test_matrix.cpp