CORE-5413 Fix ID vs. path bug in 'last path' selection.

Refactored SelectFolderByIdLoadHandler to SelectFolderByPathLoadHandler, which now requires a HasPath instead of a HasId.
This means the DiskResourceView#Presenter#go and setSelectedFolderById methods (refactored to a setSelectedFolderByPath method) also now require HasPath parameters.
Added a DiskResourceView#getFolderByPath method.
Added CommonModelUtils#createHasPathFromString and createHasPathSplittableFromString methods.
Refactored DiskResourceUtil#getFolderIdFromFile to getFolderPathFromFile.
Refactored the OpenFolderEvent#getFolderId method to getFolderPath.
Refactored UserSettings#get/setLastPathId methods to get/setLastPath methods.
Refactored references TreeStore#getAllItemsCount calls to getRootCount calls in DiskResourcePresenterImpl and SelectFolderByPathLoadHandler, to make the intent of this logic more clear.
Refactored DiskResourcePresenterImpl to inject the IplantAnnouncer for better testing support.
Refactored many references to DiskResource#getId and DiskResourceView#getFolderById to getPath and getFolderByPath instead, to make the intent of these parts of the code more clear, and so that they can be more easily refactored in the future when files/folders get UUIDs.
CORE-5413 Refactored known-root-path check into SelectFolderByPathLoadHandler.

This will prevent errors when a user's 'last path' preference has been saved as their home folder with a '/root' prefix, and then they open a Folder selection dialog.