fix postfix operator chaining and judiciously add "try"
fix postfix operator chaining and judiciously add "try"

Closes #1

Postfix operators can now be arbitrarily chained to any depth.
Expressions such as "a[:-2:1].e()[0]()" now parse as expected.

Certain parsers are now begin with "try" so as to perform arbitrary
lookahead. These parsers use "try" just enough to commit to the branch
they're in. The upshot is that we get good error messages.

See http://blog.ezyang.com/2014/05/parsec-try-a-or-b-considered-harmful/
for more details.

djeik/goto,djeik/goto