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.
Update docstrings.

Update docstrings for two functions:
* `forms.generate_character_skill_form`
* `views._generate_formset`