[#5783] Only compute diffs for current page
[#5685] Changed commit log browser to use more efficient Older link paging

Signed-off-by: Cory Johns <johnsca@geek.net>
[#5685] Removed commit count because it can be very slow

Signed-off-by: Cory Johns <johnsca@geek.net>
[#5685] New version of ForgeHg for non-pagination

Signed-off-by: Cory Johns <johnsca@geek.net>
[#5685] Added some error checking for some corner cases

Signed-off-by: Cory Johns <johnsca@geek.net>
[#5685] Improved Older paging for commit log

Signed-off-by: Cory Johns <johnsca@geek.net>
[#5685] Change GitImplementation.commits back to GitPython implementation

The implementation of GitImplementation.commits() that calls out to git
to list commits which modified a given path is, under certain
circumstances, significantly more efficient than the implementation
using the mongo cache to determine the same.

Testing on a copy of the Merciless repository, the _git.iter_commits
implementation takes roughly 1.5s to generate the history log for the
path /flyway, while the mongo / Allura model implementation takes
somewhere around 20s.

Signed-off-by: Cory Johns <johnsca@geek.net>