deal with folders/color groups correctly
allow writer to deal with color groups

fixes chunk_count to == '2 + number of swatches in color group'
since the group's terminator implicitly adds another chunk to the mix.

adds `swatch.dump(obj, fp)` and `swatch.write(obj, filename)` each of
which are convenience methods for swatch.dumps.

adds unit tests for the writer to ensure that a parsed json file can
be rewritten to an identical ase file.