RGB <-> LabSpace memoization

PR started to address issue #9 . This is work in progress for comments and direction.

** Note: This code won't yet compile.
C structs can't be stored directly in Objective-C collections by bridging. Only C types derived from [`CFType`](https://developer.apple.com/library/ios/documentation/CoreFoundation/Reference/CFTypeRef/index.html) have the correct memory management semantics necessary to bridge.

There are two ways to work around this problem:

1. Use [`NSValue`](https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSValue_Class/) to wrap the struct in an object. You can see an example of that [here](http://stackoverflow.com/a/4517970)
2. Use Swift, since C structs are bridged seamlessly across to Swift as native Swift structs and can be stored in Swift dictionaries just like any other type. This nets you the additional advantage of faster runtime performance and much cleaner closure syntax, as well as the ability to define a generic memoization function rather than restricting it to `INVector3` specifically.