Make sure second order is correctly generated.

Since the first object is created with an order of `0` and `bool(0)` evaluates
to `False` we must make sure to differentiate between `0` and `None` when
generating the second object order.
Added an `order_with_respect_to` option.