ShardRange.OuterBound had the singleton-like property of all instances
of the same class being equal, but did not prevent multiple instances
being created. Instead, ShardRange.MIN and ShardRange.MAX are used to
hold single instances of each outer bound.
The ShardRange.OuterBound equality property was achieved by overriding
the default __eq__ method, but as a consequence the type was not
hashable, preventing it being used in lists or as a dict key without
also overriding the default __hash__ method.
This patch makes ShardRangeOuterBound a proper singleton, removing the
need to override __eq__ or __hash__.
Change-Id: I21292e7991e93834b35cda6f5daea4c552a8e999