Enables caching for libraries.

- Resolves #824.

This is a start, however, I am inclined at this point to simply enable caching at the very beginning of the process, rather than the current attempt to enable and disable as the process progresses.
Looks like a good cleanup. The only improvement I can think of is to call make_is_cache() just before you need it in drush_invoke_process(pm-download), drush_download_file(), etc. So you would never call drush_set_option(), you would calculate it each time.