Bunch of combinators and some string stuff.

Sorry, I did this before the Alternative reform, so let me know if something should be moved out of here and into the respective place. Or any other things I might have missed.
Also, I'd consider showing ParseError(message) instead.