Add source-gen for enumerated types

This eliminates the need to use `null` as the special value in
formatting options, e. g. Integer|Unlimited maxLineLength (instead of
Integer?).

* implements and therefore closes #15
* closes #14 by removing optional types completely
* closes #8 by removing optional types completely