initial working version of cholesky based solve

Hi

Here is a working implementation of a Cholesky based linear solver. 

In a second step, I now need to somehow make Theano use this. Is the best way to have a ```MatrixInverseCholesky``` class? This would act in exactly the same way as ```MatrixInverse``` on matrix ```A```, i.e. invert it, but take the Cholesky factor ```L=cholesky(A,lower=True)``` as input (while still inverting ```A```). In particular, when being multiplied to another node, rather than ```Solve```, it would use ```SolveCholesky```

Let me know what you think.