New method to get cropped bytes from files
New share refresh system using new file APIs
Create new executor to handle resource pools
Initial implementation of new share refresh pool
Small improvements to concurrent share handling
Make share constructor try to handle exceptions
Remove unnecessary throws from functions
Tiny change to use a set instead of conditionals
Merge remote-tracking branch 'origin/master' into share-refresher
Merge fixes into branch
Initialise share refreshes asynchronously
Clean up a few synched blocks
Tiny cleanup
Handle listeners being changed during transfers
Minor update to share server
Merge branch concurrent-share-refresher