More inverses.

We can now go to and from the Luo spaces and CIECAM02.
Probably the interface of this module and also the interface of srgb.py should be harmonized with what's going on in ciecam02.py. 
I'm not a big fan of this calling convention. Tuple-unpacking-in-arguments was removed in python 3, and this doesn't play well with passing arrays of colors around either. In the ciecam02 file, the array XYZ breaks down like X = XYZ[..., 0], Y = XYZ[..., 1], Z = XYZ[..., 2]. Because of how numpy handles iteration, though, passing an array of JMh values here will be broken down like J = JMh[0, ...], M = JMh[1, ...], h = JMh[2, ...].

How about
```
def JMh_to_JKapbp(self, JMh):
    JMh = np.asarray(JMh, dtype=float)
    J = JMh[..., 0]
    M = JMh[..., 1]
    h = JMh[..., 2]
```
?

(I guess those last three lines could equivalently be written `J, M, h = np.rollaxis(JMh, -1)`, but this strikes me as overly clever...)