Do not use a fixed tile grid for vector rendering

Instead, we create a new tile grid whenever renderFrame is
called, no animation is active, and the resolution is not in the
tile grid already. This gives better rendering results because
we get vector tiles at native resolutions.
Separate method for updating the tile cache
Do not add resolutions while interacting
Use binaryInsert instead of sort
Tile grid and cache for one resolution only
Do not render tiles during animation and interaction
Adding comment about MIN_RESOLUTION
Fixing requires
Simpler tile coord access now that we only have one resolution
Need to take units into account
Merge pull request #799 from ahocevar/dynamic-canvas-tilegrid

Do not use a fixed tile grid for vector rendering. r=@elemoine,@tschaub,@twpayne
Initial bits for parser
More char code tests
Separate lexer
Renaming for clarity
Scan numeric literals
Expectations about token type
Space and comment
Scanning identifiers

This includes code that is likely not necessary.  The escape sequence scanning will likely not be used in our case, but I'm committing it here so it can be brought back if needed later.
Escape sequences in our identifiers have already been handled