Merge pull request #24 from certik/speed

Speedup Mul expansion
Add benchmarks
Add another benchmark
Fix the out of tree build
Add Teuchos source dir as well
Merge pull request #25 from certik/bench

Add benchmarks
Add a GiNaC benchmark
Implement faster is_a<>()

This implementation uses typeid() which is faster than dynamic_cast<>().
Merge pull request #26 from certik/typeid

Implement faster is_a<>()
Add Python version of the benchmark
Disable strict aliasing for csympy_wrapper.cpp

This gets rid of all the compiler warnings of the type:

/home/ondrej/repos/csympy/csympy/lib/csympy_wrapper.cpp: In function ‘PyObject*
__pyx_pf_6csympy_3lib_14csympy_wrapper_5Basic_4__add__(PyObject*, PyObject*)’:
/home/ondrej/repos/csympy/csympy/lib/csympy_wrapper.cpp:1192:15: warning:
dereferencing type-punned pointer will break strict-aliasing rules
[-Wstrict-aliasing]
Add CSymPy config file
Implements Mul::check_canonical()
Travis: add a test for CSYMPY_ASSERT

We simply test in debug mode with CSYMPY_ASSERT on. That should catch all bugs.
Add the csympy_assert.h file
Add csympy_config.h into search path
Merge pull request #27 from certik/assert

Implement CSYMPY_ASSERT macro
CMake: Print messages about Python configuration
Implement Pow::check_canonical() and use it
Implement Add:check_canonical()