Fix #14: Handling of optional FormattingOptions types

Now "null" is the only value that will set an option of optional type to
`null`, and other types will yield an error. This also allows to
implement #13 for optional types as well.
source-gen: Handle strangely written optional types

Previously, writing Integer|Null instead of Integer? would give an error
– now we parse that properly.