Delay option validation

- putting option validation into its own module
- putting overwrite protection into its own module
- delaying option validation until last minute
- removing deprecated options and methods