Restructure generated source for option parsing

source-gen now only generates a function that parses a single option;
the “wrapper” that handles includes and multiple options is now a
separate (non-generated) function.

This might improve option parsing when some options are faulty – I
believe the old function would have bailed out completely if it reached
any faulty function, and then not used any of these options, while the
new version should continue option parsing (but I haven’t checked that).

This should also make it easier to re-add option parsing via the
metamodel (see #20).
Add exception classes for option parsing

Separate exceptions for “can’t parse” and “unknown option”, instead of
just a generic Exception.
Make source-gen output formatted correctly

Now, running the formatter on the generated source doesn’t introduce any
changes. (I had previously missed that because I always checked changes
via git and generated sources are ignored.)