gnm_fact: rearrange factorial computations.

This fixes a number of problems pointed out by the amath tests.

The core change is the introduction of qfactf which is able to compute
very large factorials accurately.  The magnitude of the result is
returned seperately as a number of power-2-magnitudes that the
given (quad precision) result should be scaled.  It's log-like without
the error magnification that goes with lgamma.