Some context black magic to solve some problems.

Instead of changing most of the cloud driver functions arguments to accept either the `vm_` argument or the current profile name, let's play with injecting the current profile name, which will be required, into python's `__builtin__`. As soon as done, we clear the built-ins.
Don't define extra built-ins, define module globals.

In order to use our active provider context manager, we were previously defining an extra built-in. That built-in, as all built-ins would be available to the python interpreter. We just need to define and update a module level global.
After leaving the context manager scope, the previous value is reset.
Both `do_function` and `do_profile` now make use of the provider context.
Add comments to why we're not using `CloudProviderContext`.
CloudStack is now aware of the `__active_profile_name__` context variable. Refs #546. PEP-8 + Indentation + Formatting
Digital Ocean is now aware of the `__active_profile_name__` context variable. Refs #546
GoGrid is now aware of the `__active_profile_name__` context variable. Refs #546
IBMSCE is now aware of the `__active_profile_name__` context variable. Refs #546
Joyent is now aware of the `__active_profile_name__` context variable. Refs #546
Libcloud AWS is now aware of the `__active_profile_name__` context variable. Refs #546
Linode is now aware of the `__active_profile_name__` context variable. Refs #546
OpenStack is now aware of the `__active_profile_name__` context variable. Refs #546
Parallels is now aware of the `__active_profile_name__` context variable. Refs #546
Rackspace is now aware of the `__active_profile_name__` context variable. Refs #546
Renamed `__active_profile_name__` into `__active_provider_name__`.
EC2 is now aware of the `__active_profile_name__` context variable. Refs #546
Every salt-cloud module function is now executed using the cloud provider context. Fixes #546