add some comments regarding unreachable cases
only throw errors when a string _must_ have been a number

a string that doesn't start with a reader macro (i.e. a hash modifier) could be
a symbol instead so return false and the parser will try to read a symbol or
identifier.
fix hashModifiersRegexp s.t. it only matches when there is a hash modifier

The previous implementation had the weird behavior that the variable hMatch
wasn't `null' when there were no hash modifiers, which seems counter to its
name. This confusion resulted in the introduction of a bug via the last
commit. This bug is resolved by this commit.