More scrupulously-correct parsing.

Parsing of the Haskell lexemes comment, ncomment, char, string, float and
integer has been made more scrupulously correct, without regard to performance.
The types of escapes one can include in Haskell strings and character literals
is very diverse and this version supposedly handles all of them.

There was no previous parsing of Haskell comments at all. Now there are parsers
for both types of comment. They are only used in the layout pass.

The layout pass eliminates comments in a way that hasn't been tested well yet.

Also control over the handy settings showFails and showRemainder has been
promoted to the command line. getopt() had been the chosen means for this but
in practice it is not const-correct, so I wrote my own getopt().

I added a few lines to peghs.cpp so it would compile in MSVS 2010. This worked
the day I tried it, but the getopt() work was done after that.