Adds an option to store escaped metadata to FreeTextProcessor.
Adds an option to store escaped metadata to UrlsProcessor.
Adds more advanced tokenizing.

* We'll be able to hold more information about tokens now.
Rewrites property tokenizer to use string traversing.
Adds a more performant version of rebuilder.
Reworks simple & advanced optimisations to use metadata.

* We can avoid merging, splitting, and mapping by using token metadata directly.
* Unfortunately it means metadata has to be updated as we go.
Renames variables in advanced optimiser to match others.
Clarifies conditions in advanced processing.
Refactors advanced optimizer to get rid of functions in loops.
Moves cleaning up tokens out of tokenizer.

* Pulls out extracting logic into an utility class.
Adds line/column tracking in tokenization.
Adds source file tracking to source maps.
Extracts rebuilding tokens into Stringifier class.
Changes minify method output to handle multiple outputs.
Fixes line tracking in blocks (@media, @font-face, etc).
Fixes stray whitespace tracking in blocks (@media, etc).
Adds source map stringifier.

* Stringifying with source maps "on" requires doing it in different order.
* Basically restoring escaped data has to be done on every token rather than at the end.
Adds `--skip-shorthand-compacting`/`shorthandComacting` option for disabling shorthand compacting.

* Also disables shorthand compacting for source maps as it is not defined well enough, yet.
Adds `--source-map` switch for building input's source map.

* It's enabled in CLI only if output file is given.
Adds basic support for input source maps.

* `sourceMap` option can be given as source map string.
* Particularly useful for preprocessed stylesheets.