Sane option parsing

Pass options as an Object first, then pass the callback.
Merge branch 'sane-option-parsing'