Moved config and cache to ~/.gdfs/
Implemented local file caching during file writes

  - Makes writes significantly faster and reduces bandwidth use as
    the existing content is only downloaded once instead of for each
    4k block
  - In the event of a failed upload, the file should remain in the cache
    for later retrieval, although the user may not know what happened