Add file persistence. Turn listeners on and off depending on `watch` option
Mitigate exceeding memory limits
Actually use the cache...
Keep track of file's mtime to skip first bundle if nothing has changed.

Details:
We can provide browserify with a cache. However, even with that, a big
bundle can take many seconds. If we can quickly check that nothing has
changed in the cache, we can just skip the first build, and watch.
Merge branch 'add-file-persistence'
Add new options/features to command line utility
Make watchify.args a function for new cache instance. fix cb errors

Details:
watchify.args should be a function so that each call to it returns a new
instance of the cache property. Otherwise the cache object is shared
between bundles, which I do not think is desirable. Also accept the
callback to the `bundle` function.
Fix command line tools dying when cache didn't change.
Use statsSync as really fast builds that are async miss write.

Details:
If there is a very fast build, the fs.stats call will most likely return
after the bundle stream has ended.
Test the newly added `watch` and `cacheFile` options.