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.
It was missing the "extend" method so I added lib/sinon/extend.js and then is was missing the "functionName" helper function which was in lib/sinon/util... so I gave up because I didn't want to write down all the dependencies.  If you like, I can browserify the sinon.js that's in node_modules.