Allow different hex formats in Palette model

Now allows (where H is a hex digit):
  - #HHH
  - HHH
  - #HHHHHH
  - HHHHHH
And will insert a beginning # where there is none.

Updated specs to reflect this
Refactored/removed initialize in Palette

Shouldn't be overriding ActiveRecord initialize...
Move all work in initialize to AR callbacks instead

Updated palette spec to reflect this
Refactored/removed PaletteSet#initialize

Shouldn't override ActiveRecord#initialize. Moved palette generation
into a after_initialize callback instead.

Also:
- added source attribute to PaletteSets
- created join table between Palette-PaletteSet
- specified join table in both Palette and PaletteSet models
- removed unnecessary attr_accessors/readers