Convert `number' to use `at_least_one'
Prevent `>>', `|', and `any' from failing with empty input

Failing is deferred to the parsers that are built with `>>`, `|', and
'any'

`at_least_one' still uses fail_to_empty since a parser must at least
parse one item which isn't possible with an empty list
Add `maybe' combinator

This corresponds to the regular expression modifier `?'
Add tests