RGB <-> LabSpace memoization

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

Looks great to me now. One minor stylistic thing. `T:U` should be `T : U` :)

Also, since this memoization function is generic and isn't coupled to the colors stuff, I'd prefer if this one function were moved to a new Swift file, `Memoization.swift`. You can drop the `private` access modifier as well, it'll default to internal so that it can be used by the functions in this source file but can't be accessed publicly.