Add mock to requirements.txt
Refactor clidriver

No functional changes.

* Allow session to be passed in
* Remove unused code
* Fix long line lengths
* Main parser does not store parser attribute
* Rename a few clidriver methods to be internal
* pep8 fixes, long line lengths
First take at a hooks module

Very basic and likely missing features.
Add plugin loading/processing module
Integrate plugin system with cli driver

* Created main() function in clidriver

This gives room for the plugins to be loaded, rather than
have CLIDriver know anything about the plugin loading process.

As a result, I've updated aws and aws.cmd to use clidriver.main()
instead of creating the CLIDriver instance themselves.

* Load plugins from config file

* Emit events in clidriver

Added tests for these as well.