RGB <-> LabSpace memoization

PR started to address issue #9 . This is work in progress for comments and direction.

The type of this cache should be `T : U`. It's not necessary to explicitly take the `hashValue` of the key and use that as the actual key, because declaring the key type as `T` will automatically take the `hashValue` for you.