Model skin

This adds a `ModelSkin` object that holds the various customisation properties for a model - decals, patterns, colours and label.

The idea is to have something separate from the model instance itself, so it could hold game-related customisation. A player can keep their decals and colours when they change ships, or you could have per faction skins, or whatever.

Keeping it separate allows us to set patterns or decals for some models from alternate sources, like the station advertising decals that we've discussed.

Also exposed to Lua, and loadable/savable independently.

(Hint: its conceptually identical to `ShipFlavour`).