Properly expose model patterns to Lua

So we've had the model pattern attached to the skin, and apply it to the model along with the decal and colours. That's wrong. Patterns are specific to the model and can't be generalised into the skin.

This moves pattern management off on the skin entirely. Because we need to do things against the model, and pretty much all ship creation and setup is done in Lua, we have to expose the model to Lua. So I've done this in a very minimal way to start because I don't want overcommit on API just yet.

And then everything else is just supporting changes to handle patterns separately from skins.

Fixes #2626.