Fix and enhancement of parser. Fixes #309.

It was possible to add dynamic things into literal array, like:
```smalltalk
#(4 {5. 6} [ :x | x isBlock ] 'string')
```
When tried, it failed without any usable clue.
This is fixed with this.

Also, `#(#(4 5) #(6 7))` can be written as `#((4 5) (6 7))`.

Plus other fixes: you can write #+ (you could not before),
and you can have symbols #-less inside literal arrays, too..