Allow whitespace in square brackets

The definition of `QuotedFragment` causes variables like `hello[goodbye ]` (notice the space) to get parsed in the same way as `hello.goodbye`. This is due to the name being parsed as `hello[goodbye` (with no closing `]`) and then `VariableLookup` interpreting that in a lax way.

I'm not really sure how to fix this in a clean way.