Fix bug in parsing of scientific patterns
Use elaborate, correct, regexp for complex parsing

We now rather closely follow section 1.3 of the Racket docs [1].

I've still ignored the use of `#` as a stand in for significant `0` digits. I'm
not sure any WeScheme user will take advantage of that.

Be wary that now the complex matcher is duplicates a lot of regexps from the
other number regexps. In the future we should unify all the regexps so that
everyone builds themselves out of the same common pieces.

[1] http://www.cs.utah.edu/plt/snapshots/current/doc/reference/reader.html#%28part._parse-number%29