Added forceful caching (thus added --update flag). Added --random,--list flags

I remember reading in an issue somewhere that you were thinking of downloading all the files at once (possibly in a different implementation than I did) but I like it this way.

Explanation of changes:

I added some functions in the request.js file to pull down file lists from the github API so we know what to download.
I added functions to resolve.js to list commands and get a random command.
I changed the functionality of resolve.get to only look in the local cache (forcing people to use the update flag if need be - I'm not sure if I should have removed looking on the remote as last resort, let me know what you think).
I added an update function in cache.js to update the cache, removed aging of the cache and moved the cache to be under the home directory by default as opposed to under the system tmp directory.