Added the HSL color space.

After I wrote all this I noticed that HCL may be very similar, but, I got it all working, so might as well contribute.