Refactor Level model
Ensures that the user selects all required feats before continuing

This introduces the GameSystem#feat_algorithm to calculate the number
of feats, that a character should select each level. The value of this
is floored before use, so an algorithm that might return fractions will
only result in the character prompting to select a feat when the
algorithm results in a whole number.

E.g. the algorithm x/2.0 would only prompt a character to select a feat
every other level.

Notice that you should use floating point numbers in the algorithm.
E.i. use 2.0 instead of 2.
Add railroady for UML documentation
Adds options for mandatory feats and bonus feats

Mandatory feats are feats, which is forced upon the character, when the
level’s added. While bonus feats is a collection of feats, from which a
single must be chosen, when the level is added.