Refactoring Cholesky Decomposition

I modified Cholesky decomposition so it aligns with the API.

Now there is only one public method, that is, a static decompose method. It creates a ```temp``` instance of the class using a private or a protected constructor and uses it to ```_decompose``` the matrix and returns a ```IXXXXResult``` object.