Minor code cleanup.
Slightly decrease memory usage on server.
Fix build error.
Store file system tree in an internal only tree on server to decrease memory usage.

* Mapping to the external version is only needed when responding to the GetFileSystemTreeRequest, which is somewhat rare.
Revert to fast processing.
Code clenaup.
Improve performance of FileSystemNameComparer.
Simplify file system tree building.
Code cleanup.
Fix shutdown issue with heap block finalization.
Improve performance of collections stored in FileDatabase.
Fix performance regressions:

* Using Dictionary is faster than SortedArray for lookups
* Re-add "AsParallel()" call removed by mistake.
Simplify FileSystemTreeInternal data structure.

* Split child directories from child files.
* Child files are simply a list of files names.
* No need for abstract base class for directories and files.
* Much simpler, faster and uses less memory!
Code cleanup, renames.
Add comments.
Code cleanup.
Add project snapshot in file system snapshot.
Move files around.
Code cleanup, refactor file change notification to include project.
Improve performance of file loading.