Changes Semantics of opts and opts! helpers.
Changes Semantics of opts and opts! helpers.

Details:
* Adds opts! method, which will raise an error when a nil would have
  been returned as the found options.
* Changes opts to not raise an error at all.
* Changes opts to return the default value if the key is
  non-existent in the options value, or if the explicit value
  of the key in the options hash is set to nil.

byu/serf