Prevent infinite loop when catching errors.

If an error is caught, the parser's while loop would continue
to run without advancing, as the return value of `take` would
always be true.

By always returning false, parsing will stop when an error
is raised, caught or otherwise.
Merge pull request #1 from hughsk/fix-error-loop

Prevent infinite loop when catching errors.