Feature/fog provider plugin

This single plugin replaces the `joyent_provider`, `openstack_provider`, and `rackspace_provider` plugins. It can easily be extended to support any provider which is supported by the `fog` gem. The current version of the plugin uses `1.21.0` of fog. This fixes #288 and paves the way for increasing provider support more easily.

OpenStack:
- Changed `openstack_ssh_key_id` to `openstack_keyname`
- Changed `identity_file` to `openstack_keyfile`

Rackspace:
- Added `rackconnect_wait` to force servers to wait for RackConnect before confirming
- Added SSH key pair options as user options (`rackspace_keyname` and `rackspace_keyfile`)
``rescue => e`` should be good enough now.  Existing code is a nasty hack that's there to catch SystemExits from the underlying knife plugins.  we may consider removing this from confirm(), etc too.