Limit which skills can be assigned to a character

A character can only be assigned a skill if that character belongs to a
campaign, and that skill's skillset belongs to the same campaign. Implement this
restriction via some metaprogramming black magic.