RGB <-> LabSpace memoization

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

You can avoid having to add extra complexity in passing in a second function `p` by just writing a function to convert the pixel to a vector and get the output of `IN_RGBToLab`. For example, inside `dominantColorsInImage()` you could just do this and go back to the simpler `memoize`:

```swift
let pixelToLAB: INVector3 = { pixel in
    return IN_RGBToLab(pixel.toRGBVector())
}
let memoizedRGBToLab = memoize(pixelToLAB)
```