TODO

- abstract out the cache so that it can work in distributed
  environments, and on platforms where Cache::FastMmap is
  not available (Windows)
- Make the cache size and location configurable
- add support to indicate which file is currently being uploaded
  when uploading multiple files at once
- add more examples
