Initial plugin support

This change adds support for AWS CLI plugins.  A plugin
is a python module that defines an `awscli_initialize`
function.

This change can roughly be broken up into three changes:

* Adding the modules for plugins (plugin.py, hooks.py)
* Refactoring clidriver.py to make plugin integration
  a little easier.
* Integrating the plugin system with clidriver.py.


There's still more work to be done, but I think it makes
sense to get this initial support into develop.

Added tests for the new changes, and all the existing tests
pass.