Moves option/parameter handling into its own class.

 * Parameter definitions now have an abstraction (class `Parameter`)
 * Got rid of global hash in favor of an instance of
   `ParameterManager` that is passed around.
 * Minor changes to parameter parsing: last parameter is now always
   interpreted as file name.
 * Support for enum parameters added and used for log format and level
   as well as engines.
 * Parameter keys are now symbols.
 * Global variables `$jobfile` and `$jobname` have been moved inside
   the parameter abstraction.
 * Illegal parameters are now critical errors. (Disputable)
 * Parameter whose value is passed to the engine is specified,
   but engines don't support it yet (cf issue #25).
 * Abstraction should allow for easy finish of issues #3. In particular,
   we can now change and extend parameter values in a safe fashion.