Treat nil value options as nonexistent

Previously, if an option was passed with a nil value (for example if it came
from ``params["not_passed_in_request"]``), then it would override a default.

This was a problem for the ``order`` parameter - it would use nil when we
wanted the default.

The secondary benefit is that the code is a bit clearer and ``options`` is more
or less self-documented.