Create a faster, specialized map for ObjectId subclasses
Now that RevObject is a subclass of ObjectId we can further reduce the
memory usage within RevWalk as well as boost runtime performance by
using a highly specialized hash that takes advantage of direct access
to the members of the ObjectId.
Between this specialized hash and the commits prior to it we shave
nearly 200 ms (32%) off the running time for "rev-list --parents HEAD"
on a relatively recent git.git repository (12,966 commits). This puts
us within 85% of the performance of Cygwin C Git.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>