hashCode and equals are needed for thigns in a hashmap

also added the trivial equals and hash for ItemIdentifier, as uniqueID
is randomly generated, and guaranteed unique.