Make python beautifier options create a local copy instead of modifying original
Bring back space_after_anon_function option.
Merge pull request #474 from gabrielmaldi/switch-case-aligment

Bring back space_after_anon_function
Pure refactor to fully tokenize before formatting

We've been dealing with limitations from incomplete parsing (#200) for ages.

Instead of parsing fully this change tokenizes fully before starting formatting.  This should open the door to simplifying parsing and formatting rules.

For example, to find an object literal currently, we have to check repeatedly later on for a matching pattern.  With this change we could determine as a block is opened whether to treat it as on object-literal or not.
Cleanup whitespace
Further refactor of Tokenizer to separate class from Beautifier

It is hard to see the changes here because of brain-dead diff diff tools.
Created a Tokenizer class/scope and moved all tokenizing into it.
There are a few cases where sharing data makes sense, so the
beautifier references Tokenizer when needed.