Enhancements to provide pool creation and attributes
Fix to better handle concurrent runs of module against same pool
Ensure plugin_loader.all() only loads one instance

by ensuring all basedirs, plugin paths and extra
paths are handled as absolute paths and are checked
to not add any doubles.

This fixes the corner case where e.g. the user has
an additional plugin path configured to a dir
relative to his playbooks or inventory location,
which also matches the  _plugin subdir relative to
one of the basedirs in the play.

For most plugins this doesn't show as an obvious issue
except for callback_plugins, which might fire more
than once. Other plugins (inventory and template
plugins) might unnecessarily be ran twice.

e.g. ansible.cfg has
callback_plugins   = ./plays/callback_plugins
and plays/ contains a playbook file:
.
├── ansible.cfg
├── inventory
└── plays
    ├── callback_plugins
    │   └── timestamp.py
    └── site.yml

modified:   lib/ansible/utils/plugins.py
Documentation fixes and enhancements
Automatically prepend partition if non-fully qualified monitors are passed
Add support for role defaults. These are variables on a per role basis with lowest precedence.
Initial work for the AES cipher class

This is based somewhat loosely on how Keyczar does things. Their
implementation does things in a much more generic way to allow for more
variance in how the cipher is created, but since we're only using one
key type most of our values are hard-coded. They also add a header to
their messages, which I am not doing (don't see the need for it
currently).
Initial commit for the "fireball2" connection plugin

Still needs:
* chunked file transfer/receive
* should probably move all send/recv operations to separate
  functions to reduce code duplication
* initial connection setup over ssh? or do we handle that in runner?
Fireball2 mode working!
Fireball2 module will now launch in a proper tmp path
Bail out correctly if socket.recv gets nothing (indicating a closed socket)
Initial support for sudoable commands over fireball2

Caveats:
* requiretty must be disabled in the sudoers config
* asking for a password doesn't work yet, so any sudoers users must
  be configured with NOPASSWD
* if not starting the daemon as root, the user running the daemon
  must have sudoers entries to allow them to run the command as the
  target sudo_user
Initial support for running gather_facts through fireball2
Added accelerate_port to plays, and made it configurable
Adding chunked file transfers to fireball2
Merge branch 'defaults' of https://github.com/smoothify/ansible into smoothify-defaults
Fixing a few bugs related to fireball2

* ssh port not being picked up, always uses default of 22
* forgot to 'import time' in the fireball2 connection plugin
Allow default variables to be overridden by inventory variables
Fixing a bug in variable precedence for roles and dependencies
Merge branch 'smoothify-defaults' into devel