* can optionally output terminal to a file, so it could be watched
separately from the main process (e.g. tailf nvi-display.log)
* got rid of all the globals. moved them into appropriate scopes. now
there is only one global called App. so either they are now instance members of
App or they are available in the ./utils.coffee file
* made Window, Terminal, Logger, etc. instantiable objects so there
could technically be more than one, even though 99% of the time there
will only ever be one (a Singleton object), just because it gives us
more flexibility in the future
* all this so the app can run well from within Mocha for comprehensive
testing