Add Enhancement Speed up File Transfer
Modify method run of class ChunkStoreSyncThread, to sleep 0.5 to 60 sec. depending on the amount of files to transfer in order to speed up file transfer but otherwise use little computing power
Modify method run of class StoreSyncThread
Modify methods enqueue_dirty_entries, and enqueue_lru_entries of classes StoreSyncThread and ChunkStoreSyncThread, to dynamically adapt the number of threads to the size of the files to be uploaded and the amount of files to transfer
Add Feature interactive profiling
Modify method run of class StoreSyncThread, to allow activating and deactivating of profiling to /tmp/cloudfusion_profile
Modify setup.py, to add dependencies for profiling

Modify method set_configuration of class MultiprocessingCachingStore, to enable or disable profiling of its StoreSyncThread instance, when it contains the key ENABLE_PROFILING in the dictionary of its parameter
Modify classes WriteWorker, and ReadWorker, to make the processes "deamons" which should stop them automatically when the main application has stopped
Bugfix method write of class VirtualConfigFile, to unify the use of id and secret keywords
Add methods get_id_key, and get_secret_key to module string, to get the synonym for the id or the secret used in a dictionary
Modify constructor of classes SugarsyncClient, AmazonStore, GoogleStore, GoogleDrive, and DropboxStore, to accept any synonym for id and secret
Bugfix method get_dirty_files of class TransparentMultiprocessingCachingStore, some cache entries might be deleted during iteration (an alternative solution would be a try catch block arount the call to is_dirty)
Modify module main.py, to provide better instructions for stopping cloudfusion if the usual way fails
Closes issue #16
Bugfix methods set_dirty_cache_entry of classes StoreSyncThread and ChunkStoreSyncThread, to prevent that the cache entry is deleted immediately after setting it dirty
Modify constructors of classes MultiprocessingCachingStore, and ChunkMultiprocessingCachingStore, to give a warning if the parameter cache_expiration_time is smaller than 240 seconds
Modify method write of class VirtualConfigFile, to set the default for the cache expiration time to 240 seconds
Bugfix class MetadataCachingStore to add non expired items to new directory listings in case that they are not yet listed by the storage provider
Modify constructor of class MetadataCachingStore to give a warning if cache expiration time is less than 240 seconds
Bugfix method flush of class PyFuseBox, to raise ENOSPC error if there is not enough free space to store the file - get the correct file size
Bugfix logging issue with third party module parsedatetime; logging configuration has been overwritten by CloudFusion and needed to be reconfigured so that no output is generated
Bugfix functions get_file_size_in_bytes and get_file_size_in_mb of module file_util.py, to reset the pointer to its original position
Add Enhancement Do Not Catch Signals, so that no signals like KeyboardInterrupt are catched in try except statements
Modify classes MetadataCachingStore, DBHandler, PyFuseBox, ChunkStoreSyncThread, DopboxStore, GoogleDrive, SugasyncStore, TinyDAVClient, and PersistentLRUCache, to replace empty except clauses by except Exception, e
Modify interface Store, to replace empty except clauses by except Exception, e
Modify modules db_logging_thread.py, and tonline_autorregistration.py, to replace empty except clauses by except Exception, e
Bugfix module main.py, to adapt output because kill is used in stead of pkill, so there is no danger of killing the wrong process
Add Enhancement Enable Profiling Through Commandline
Modify Module main.py, to add optional parameter profile, which will enable profiling to the file cloudfusion_profile
Refactor constructor of class MetadataCachingStore, to use an instance of Cache instead of MPLRUCache, as no entries are deleted from the cache, since all entries are non dirty anyway
Modify methods get_file, store_file, store_fileobject, create_directory, duplicate, move, get_modified, get_directory_listing, get_bytes, exists, is_dir of class MetadataCachingStore, to remove the side-effect of removing expired cache entries from the metadata cache
Modify method get_metadata of class MetadataCachingStore, to remove expired entries from time to time
Add method clean_expired_cache_entries to class MetadataCachingStore, so that the user may clean expired cache entries when he pleases
Bugfix method move of class MetadataCachingStore, retrieve correct entry from matadata cache otherwise a KeyError might be raised
Modify method get_directory_listing of class MetadataCachingStore, to make it slightly faster when used with many entries in cache
Modify method get_directory_listing of class MetadataCachingStore, to cache that the path is a directory
Modify methods get_metadata, get_bytes, and exists of class MetadataCachingStore, to remove metadata cache entry if it does not exist at the storage provider
Bugfix method get_metadata of class MetadataCachingStore, add retrieved item to parent directory listing