[ENH] Matrix exponential op and gradient (round 2!)

- Adds a new matrix exponential Op to slinalg.py, implemented with scipy.linalg.expm.
- Adds an op for the gradient of the matrix exponential.

This is a reworking of #2285. I fixed the math. It works for general (non-necessarily hermetian) arguments. [This test](https://github.com/rmcgibbo/Theano/blob/expm/theano/tensor/tests/test_slinalg.py#L273-L280) is with an arbitrary 5x5 matrix, without the restriction to symmetric matricies or anything.