Reduce complexity by removing explicit context

Global variables are typically a antipattern, but when used judiciously,
they can be helpful. In this case, I've chosen to use two global
variables, for workon_dir and for virtual_env. I think this is
acceptable, because they both get their data from the environment, which
are global anyway.

I've added empty global variables to the main module level with a
comment of how they are used to help make their usage understandable.
Now properly setting those global variables is the job of the pew
callback, which gets run before every command anyway.

Additionally, I've opted to remove the Context.dirs and Context.envs,
putting them, with comments, in the ls method, which is the only place
they were used anyway. This eliminated the need for the context
entirely, as well as the wierd 'pass_context' decorator.