implement S3FileSystem.doCloseCommunicationLink() so that transferManager gets cleaned up and doesn't leave worker threads running.
Use separate temp file for upload so it doesn't get clobbered on detach.
Fixed/Optimized doListChildren() and doListChildrenResolved()

Fixed doListChildren() and doListChildrenResolved() to not choke when
the initialize list is truncated because subsequent requests did not
set the prefix. Also improve efficiency by using delimiter in addition
to prefix to limit the response to only immediate children instead of
post-filtering the response.
Optimizations and fixes to copyFrom

1. Don't try to perform server-to-server copy unless source and
destination file are using the same credentials.
2. Bypass the temporary cache file when copying from sources other than
S3.
Added tests and fixed bug revealed by same

Added tests for outputStream  and  outputStreamEncrypted tests to make
sure outputsreams are tested independent of copyFrom since copyFrom no
longer leverages the outputstream. Fixed bug revealed by the tests.
Added .idea to .gitignore