Java Property-based HashMap and Key implementation. Allows for circumventing type-erasure by using a class reference.