2.0.0 Work In Progress Pull Request

For reference and comparison, help and suggestions welcome

2.0 required 'stuff'
- [x] Remove dist files and move to a single less.js
- [x] refactor out environment
- [x] Get browser building using browserify
- [x] Tidy up structure. we shouldn't have everything in tree!
- [x] Move browser.js and lessc_helper.js to the relevant environment folder
- [x] Tidy up parser - move out input reader and imports etc.
- [x] make less.render available in all environments and encourage its usage instead of manual creation of parser and toCSS (allowing us to make calling toCSS asyncronous and more complex)
- [x] move toCSS from parser
- [x] Move out chunker
- [x] Move clean-css to lessc dependencies, not an option passed to the parser (or alternately a plugin, along the lines we will also use for autoprefixer)
- [x] Use promises instead of EventEmitter for less.render
- [x] deprecate chunker
- [x] Improved comment parsing
- [x] move clean css to plugin
- [x] look at the Error pull request and whether we should inherit in LessError
- [x] expose everything on less, not just some things. Probably also make it match directories
- [x] look at how easy it will be to extend import manager - are there any needed api changes?
- [x] sourcemap support for autoprefixer
- [x] change import manager to a class?
- [x] rename env to be context to avoid collisions with our new environment?
- [x] review current plugins api and compare to issue, see if anything extra is a breaking change.
- [x] create a logger system with a null logger - tidy up browser logger and test logger
- [x] Tidy up the environment api if needed and ensure documented in api.js
- [x] clear file managers added during instance operations -
- [x]  and add a addFileManager to plugin manager
- [x] Seperate PluginManager and NodePluginManager
- [x] Make PluginManager be created per instance and run on options
- [x] Code comments and extraction to form api documentation
- [x] integrate https://github.com/less/less.js/pull/1972/files
- [x] Support asyncronous functions (eval will already have the capability to be async. Create a asyncEvalNode which proxies eval/toCSS. Add baseline function then with immediate invocation to the node base class. go through every eval call and after every eval, execute in a then. store promises on env and then complete when finished :S)
- [x] look at sourcemap defaults and whether any improvements should be made
- [x] expose file cache
- [x] if lessc is installed globally can it pick up local plugins?
- [x] assign a beta version and make sure it doesn't reject the minVersions of plugins because its labelled beta
- [x] good manual testing or automated testing of lessc