Normalize for spacing and upper/lowercase in CQL completions

Highlights:

  * Split the various helper functions into a separate module for easier testing.
  * Completions go through case and whitespace normalization.

The new tests in `query-completion-test.js` should give you a sense of the completions this enables.
Hmm, is '    baz' the token or is 'baz'? Worth noting "including whitespace"?