Metafont bugfix

My QuickCheck code isn't ready to merge, and should probably go in `diagrams-test` anyway.  But the bugs I found with QuickCheck should be fixed before 1.0, I think.  Most of these are pretty obnoxious---partial functions in the solver that don't work on empty lists or the `Right` side of at `Either` getting called on inappropriate inputs, so crash at runtime.  In other news, QuickCheck is awesome.

If you want to look at the QuickCheck tests, they're in the [metafont-quickcheck branch](https://github.com/diagrams/diagrams-contrib/blob/metafont-quickcheck/tests/Diagrams/TwoD/Path/MetaFont/Quickcheck.hs)

The final patch adds more docs, for any poor soul (eg, future me) who needs to debug `Metafont.Internal`.