Make Map rule more accomodating.

This is to handle broken code (which can be caught more clearly in
later stages) and allow for things like this which would have broken
the previous parser:

  `{ ~@[:a 1 :b 2] }

BTW, that's not valid according to the current Clojure reader but I
think it should be.
Make Constructor rule clearer and possibly faster.
Fix (Reader)Eval rule collision with ReaderLiteral.

The ordering puts priority on Eval over ReaderLiteral but
ReaderLiteral was somehow eating #=(...) forms.
Be more accurate in 'toplevel-se WRT optional whitespace.