Fixes and performance enhancements for Chorus Hub used with Paratext

Chorus Hub: Fixed getting revision of file when it was not changed in the tip revision.
Chorus Hub: Optimized getting repository information when IDs are not needed (1000x speed increase).
Paratext creates copies of each repository for each user on a project. Chorus Hub would generate the same ID for each repo which would keep more then one getting created. Thus, the repo ID is actually worthless to Paratext so it creates it's own repo names with IDs embedded to get around this problem. I realize apart from Paratext, this might not serve very much purpose, but in our testing getting the ID for a repo is *very* expensive as it requires a call to Mercurial. 

We talked about the idea of the ID being cached as another alternative. This would work well except for repositories that are considered "new" and have no ID. We couldn't find any good way to clear a cache of a "new" repo when the repo actually gets stuff put into it since it's done outside of Chorus Hub's control (i.e. directly to the running Hg process). Because of the way Paratext works, most repositories are "new" until each user on a project has done a push to Chorus Hub making caching of little use (at least for a while).