improve neutral handling

The code was juggling colour channels in D65, causing neutrals to shift
about. We now go to E before we start recombining channels.

Also, pre-multiply the colour matrices for a small speedup.

Sorry to give you (yet more) work, but this is a nice improvement. White now stays exactly white, which can be important for images with a white background.