Hand-rolled canonical time parser.

Before:

  BenchmarkParseTimeCanonical  2000000           954 ns/op
  BenchmarkParseTimeMisc       1000000          1554 ns/op
  BenchmarkParseTimeIntNano   20000000           120 ns/op
  BenchmarkParseTimeIntMillis 20000000            97.7 ns/op
  BenchmarkParseTimeIntSecs   20000000            84.0 ns/op

After:

  BenchmarkParseTimeCanonical  5000000           580 ns/op
  BenchmarkParseTimeMisc       1000000          1541 ns/op
  BenchmarkParseTimeIntNano   20000000           116 ns/op
  BenchmarkParseTimeIntMillis 20000000            95.5 ns/op
  BenchmarkParseTimeIntSecs   20000000            82.8 ns/op
Directly use canonical time parser for key parser.

Before:

  BenchmarkKeyParsing  5000000           735 ns/op

After:

  BenchmarkKeyParsing  5000000           377 ns/op
Much faster walks due to less time parsing.

Before:

  Completed query processing in 10.872257934s, 1,894,473 keys, 1,396 chunks
  Completed query processing in 10.998468475s, 1,894,630 keys, 1,396 chunks
  Completed query processing in 11.006879397s, 1,894,630 keys, 1,396 chunks
  Completed query processing in 11.020822545s, 1,894,630 keys, 1,396 chunks
  Completed query processing in 21.598278847s, 1,894,473 keys, 1,396 chunks
  Completed query processing in 21.628595959s, 1,894,473 keys, 1,396 chunks
  Completed query processing in 11.909251478s, 1,894,348 keys, 1,396 chunks
  Completed query processing in 11.788529993s, 1,894,348 keys, 1,396 chunks
  Completed query processing in 14.727168203s, 546,902 keys, 424 chunks
  Completed query processing in 4.421286109s, 546,902 keys, 424 chunks
  Completed query processing in 4.465305103s, 546,902 keys, 424 chunks
  Completed query processing in 22.29562082s, 1,894,348 keys, 1,396 chunks
  Completed query processing in 14.815620234s, 1,894,665 keys, 1,396 chunks
  Completed query processing in 14.823547635s, 1,894,665 keys, 1,396 chunks
  Completed query processing in 11.891114142s, 1,894,665 keys, 1,396 chunks

After:

  Completed query processing in 5.727634943s, 1,894,473 keys, 1,396 chunks
  Completed query processing in 5.778810421s, 1,894,630 keys, 1,396 chunks
  Completed query processing in 5.788245403s, 1,894,630 keys, 1,396 chunks
  Completed query processing in 5.796035661s, 1,894,630 keys, 1,396 chunks
  Completed query processing in 11.690702711s, 1,894,473 keys, 1,396 chunks
  Completed query processing in 11.823436739s, 1,894,473 keys, 1,396 chunks
  Completed query processing in 6.181493237s, 1,894,348 keys, 1,396 chunks
  Completed query processing in 6.229720925s, 1,894,348 keys, 1,396 chunks
  Completed query processing in 7.705676868s, 546,902 keys, 424 chunks
  Completed query processing in 1.680886747s, 546,902 keys, 424 chunks
  Completed query processing in 1.661819334s, 546,902 keys, 424 chunks
  Completed query processing in 11.921454794s, 1,894,348 keys, 1,396 chunks
  Completed query processing in 5.850853055s, 1,894,665 keys, 1,396 chunks
  Completed query processing in 7.363584268s, 1,894,665 keys, 1,396 chunks
  Completed query processing in 7.36611798s, 1,894,665 keys, 1,396 chunks
Convenient way to dynamically profile.

I keep adding and removing this code.  Now I can keep it around
permanently.