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.
Agreed, the instance should be moved to where the data type is defined. Then I'll merge.

Thanks for your work on this @joneshf, looks great!