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.