Fix: WithOptionsExtraction robust to non-initialization.
Fix: WithOptionsExtraction robust to non-initialization.

Details:
* calling 'opts' method before 'extract_options!' would have
  raised a nil error because @options was uninitialized.
* 'opts' now calls the 'options' reader, which will check for
  @options. Return an empty hash if no @options is set.

byu/serf