Optional arguments

I started putting Pirate into Ivory and these are a few tiny things I picked up along the way. Was going to create a separate PR for each part, but this seemed easier.

1. Definitely not sure how you're going to feel about renaming `option` -> `required` and introducing `optional`. Not even sure how I feel. I do thing a separate combinator is required, but suggestions welcome for the name.
2. `Read[Char]` is kinda pointless - only needed by the Ivory tombstones. Do we bother putting it in Pirate?
3. Seemed harmless to bump spec2/shapeless