Add ParseFailure EOF constructor

I think it will be helpful to have `ParseFailure` use explicit constructors, so that users have a better API for pattern matching against these errors. Currently, I've introduced the `EOF` constructor, but maybe in the future we'll need some others.