Move the internal C++ functions to an internal namespace

This will allow methods to be defined for different signatures, IIRC.

In any case it helps to clean up the code.

At least a few of the sample lmer fits work in this version.  In checking the InstEval example I found that the fit was slower than the previous code but the problem was user time.  The system time was much less in the new version.  I expect that the problem is the use of a simplicial sparse Cholesky factor instead of a supernodal factor.