RGB <-> LabSpace memoization

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

The extra `Int` casts here just to be able to use `sizeof()` aren't worth it. The below implementation from earlier uses magic numbers but at least is much more readable. That's a reasonable sacrifice. Sorry for the back and forth.

```swift
return Int((x << 8 | y) << 8 | z)
```