Bugfix class MetadataCachingStore, do not delete entries during upload

fix locks in metadatacachingstore
Remove method store_file of class SugarsyncStore, because it uses multithreading, which is not allowed in deamon threads
Modify methods rename, and unlink of class ConfigurablePyFuseBox, to give fusermount time to accomplish graceful termination before trying to kill the process; subprocess.Popen does not wait for it to complete otherwise
Refactor remove class MPLRUCache, as it is probably not thread safe
Modify class StoreSyncThread, change position of sleep statement in cycle

fix position of sleep in _run
Bugfix class GoogleDrive, to create a new Http object when it is copied (or it may throw ResponseNotReady exception)
Bugfix constructor of class GoogleDrive, to create a new Http object and authorize it when reusing deserialized credentials from last session
WORKAROUND - fast delete for tests only
Bugfix methods get_metadata,  get_directory_listing, and get_bulk_metadata of class TinyDAV, to append a trailing slash to the path, as seems to be required for webdav collections - in the case of get_metadata it might as well be directory instead of a file directory; the server will then order a redirect to the directory which must be handled accordingly
Bugfix methods get_overall_space, and get_used_space, to be able to deal with empty root
Bugfix methods get_directory_listing, and get_bulk_metadata, not to include root directory in result
Modify class SugarsyncStore, to get a partial directory listing to discern if a filesystem item exists; the range of the partial listing is guessed according to a cached ordered directory listing
Add parameters index and max to method get_dir_listing of class SugarsyncClient, to allow partial listings
Bugfix method store_fileobject of class WebdavStore, to allow to pass in fileobjects with an undefined name attribute
Bugfix methods get_overall_space, and get_used_space of class TinyDAVClient, catch exception in case the response cannot be parsed
Modify class WriteWorker, to use a process pool instead of instantiating a new process for every file

Modify setup.py, to include dependency psutil
Add methods kill, and is_sleeping to class WriteWorker
Modify class StoreSyncThread, to stop upload threads if they do nothing instead of stopping threads that are slow
Add Feature Adapt Upload Speed According to File Throughput
Modify class StoreSyncThread, to use fewer upload threads if the file size is large and the average upload time for single upload threads over the last ten minutes is low
Modify class StoreSyncThread, to sleep a minute between cycles if no files are to be uploaded, and otherwise wait until at least two thirds of the upload workers have finished before scheduling new workers
Modify method enqueue_lru_entries of class StoreSyncThread, to use an optimistic approach and catch a key error if the shared resource is deleted asynchronously instead of locking shared resource