CB-6481 Added unified hooks support for cordova app and plugins

* Hooks can be defined in .cordova/hooks/hook_type, hooks/hook_type directories, config.xml and plugins/.../plugin.xml
* Javascript hooks retrieved from config.xml and plugins/.../plugin.xml will be run via new module loader
* Introduced before_plugin_install, after_plugin_install and before_plugin_uninstall hooks
CB-6481 Updated hooks documentation
CB-6481 Docs: deprecated .cordova/hooks + other minor updates
CB-6481 Replaced CordovaError throwings with Error per @kamrik review
Extracted prepareOptions Hooker method
CB-6481 Addressed community review notes:
Removed commonModules from Context
Renamed Hooker and subclasses to HooksRunner and scriptsFinder
Moved scriptsRunner code into HooksRunner
CB-6481 Updated docs
CB-6481 Updated tests
CB-6481 Fixed HooksRunner and tests
Avoided issue with parallel tests running
Added checks for handling mocked config.xml and package.json in HooksRunner and scriptsFinder
Addressed jshint issues
Renamed ScriptsFinder to scriptsFinder
CB-6481 Fixed tests - removed output

Avoided tests output - mocked hooker fire in windows8 and wp8 tests
Added pwd check missing case to isCordova
Removed exception swallowing in case config.xml is not found in hooks/scriptFinder
CB-6481 Context opts should copy not reference
CB-6481 getPluginsHookScripts to work if plugin platform not defined

Also HookRunner minor code improvements
CB-6481 Fixed comment
fixes HooksRunner test - should run before_plugin_uninstall
CB-5390 Uninstall - recursively remove dependencies of dependencies
CB-5390 Uninstall - change order of popping top level plugin id to satisfy tests
updated platforms.js for 3.6.4
removed unused variables
CB-7661 Updated version and RELEASENOTES.md for release 3.7.0
CB-7661 Incremented package version to -dev
CB-7698 CLI - Validate top-level plugin variables before installing