Option refactoring

Flattened out the Option internals.

Removed almost all code from `#method_missing`. The ParseError might go away, after it gets more thought.