Replacing destructive method call with idempotent

Instead of modifying the input hash by calling Hash#delete, prefer to
fetch the key (with a comparable default) and pass the options along
without the previously deleted key.
Merge pull request #51 from jeremyf/replacing-delete-with-fetch-and-except

Replacing destructive method call with idempotent