Calculator: deal with parenthesized query strings.

We want to make sure that we catch all of the numbers, even if they are
inside parens, so we add some extra spacing (on request) in `spacing` to
make sure we can find them. I think there may still be a problem with
1E2-style numbers, but that's always been there. :(

As part of this, also switched the "sub" versions back to strings so I
can concatenate for the "numbery" regex.  This is not a big deal
since all the functions are getting built early anyway.

And added some more tests to make sure this works as intended.