add ColorSpace & AbstractSpace

the first step in preparation for a major refactor
improve ColorSpace, remove AbstractSpace

- the IsAbstract property now handles abstract spaces
- to() and defineConvTo() now accept strings rather than other
ColorSpaces
- create() will now be inherited on created objects
- state is now separated into it’s own init function
- defineConvTo() now requires a function
- add merge() to merge the conversions of two color spaces
add each() helper

- also add some tests for all helpers
fix double build

gulp was building twice on each save
complete rewrite

Move everything into it’s own objects so that everything is a bit
easier to test.
remove mixins