This commit finally starts to use option tree for one of its design goals;
validating the user input.
The idea is that currently we need to implement validation functions for each
parameter we get from the user. However, in the option tree we already have
all the valid options. So we can use the option tree to validate (most of) the
user input.