Indroduce BaseModifyUserProfileStep to do profile modifications.

Changed the UserProfileManager to resolve version forks. Helps to reduce
duplicated code and improve readability.
Fix delete folder
Fix notification on file update
Don't print full stack trace in case the cache cannot be read
Trigger event when file is shared
Only change protection key of files, not folders
Test the events instead of the file
Updated documentation
Add API to download a file

Needed when the user receives for example an 'addFileEvent'
Trigger events for all shared files within the folder
Introduce boolean to check whether rollback necessary

Will be removed with the new process framework anyway
Fix errors for merging