Adding support for S3 as a fileserver backend
Update s3fs.py
Update s3fs.py
[WIP] added cache expiry and fixing hashing
[WIP] File hashing and caching now working

Now just file_hash() and file_serve to fix up. Also need
to add some cache clean out code so old stale files will
be cleared when they are deleted from S3. update() seems
like a good place for this.
Feature complete s3fs.

It has proper file hashing, file caching, and it uses the same
credential settings as the other s3 utils/modules
Url encoded filename to fix handling of files with spaces
dir_list() implemented, fixed a few minor bugs

Still to implement file_list_emptydirs()
Merge pull request #4960 from Learnosity/s3fileserver

S3 file server backend support