Finish bitwise not operator

Missed one change when staging.  Added a line from somewhere else.
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.
Refactor to integrate token list

Conflicts:
	js/lib/beautify.js