Handle legacy options in the method_added hook

We only need to process the legacy options at load time, not each time
the class is instantiated, and only when there is an options method
defined.
Remove user-defined options method after evaluation

Now we can use the superclass options method for our own purposes.
Disconnect defined options from the build object