Handle improperly passed args better

If they happen to not pass a hash as the last object, you'll run into a fatal error with `options == nil`, which will cause `options[:default]` to error out.

Not really a huge concern, since no valid params will have been passed, but eh...
what if it was written like this?

``` ruby
options = {}
options = args.pop if args.last.is_a? Hash
``` 

any better or worse?