Add in part of fpstring.c
Haddock Documentation
Remove wayward "undefined"
Fix a rather serious buglet

I don't yet completely understand how the old code typechecked or what
it meant yet.  Kind of scary.
Add testsuite to .cabal file

(Note that the writeByteString is enough to expose the buglet in the parent commit)