Formatting changes.
Fix a memory leak.
Refactor general definitions into global header.

evaluator.hh was starting the become the place where functions of
general utility were getting collected. I have moved all of these to
noah.hh now, since that will become the header file that most modules
include.
Ignore GNU Global files
Try and fix memory errors reported from Valgrind.

... There were a lot! Argh. This was a painful experience, but I think I
have a semi-workable solution. The main problem was that smart-pointers
were a non-starter if I wanted to keep the tagged pointers
optimisation. That relies on you having, er, pointers. That is, pointers
that are addresses, not classes.

There were also just a lot of programming errors, and mpfr's interface
is fucking horrible, and it's memory allocation strategy is hostile to
tools like Valgrind. I made probably the world's worst "garbage
collector" to deal with my tagged pointers constraint, since once you've
tagged the pointer and sent it back off into the system, you need to
keep track of it so you can delete it at a sensible time (where sensible
is arbitrarily defined). The assumption and goals of my garbage
collector are that a) you have unlimited memory, and b) you don't want
Valgrind to moan at you. MPFR's caching strategy really makes the last
point a chore when you've PIMPL'd the MPFR bits away from your design
FFS.