add "tidy" feature

I improved the usability since the demo with the following fixes:
- show .disable-overlay while the tidy-worker is working its magic
- overlay fades opacity in/out so people know it's there
- cursor position within a node is maintained so if it's in the middle of a literal it's there after tidying
- maintain relative position of active row so that it's in the same position after tidying
- preserve spacing between lines

For the last item I had to modify escodegen.  Right now package.json points to my branch.  I've submitted a pull request https://github.com/Constellation/escodegen/pull/208 for these changes.
The plan is to publish this an npm and/or bower module.