Added functionality for computing an LU decomposition.

I wrote two methods that do this. In the regular one, LU(), a
decomposition is only valid if the matrix is square and non-singular. If
permutations are required, it further returns a P matrix to permute the
LU decomposition.

In the second method, LUextended, I've relaxed the requirements of an LU
decomposition to allow finding a factorization for any matrix, since
such factorizations are useful and I don't really want to see that one
can't be found when in reality it can.

These methods are not extensively tested, so if you find some cases
where either doesn't work please let me know. The first can be checked
against something like Wolfram Alpha or Mathematica for results, I just
haven't tested for corner cases. The second one... basically you have to
check by hand, which may be hard if you don't know the underlying
algorithm! For some reason, neither Wolfram nor Mathematica allow
extending the LU decomposition as I did. They do exactly what the first
one is, where square, non-singular matrices return an L, U, and possibly
a P. They don't allow for rectangular or singular matrices, though the
algorithm is easily extended to include them (as I did).