Additive order_by
> Maybe we could toss in a extend=False kwarg to the method that

i can see the use, but a definite +1 on not changing the default behavior if this is done.
 Of course. Default behavior is critical, especially when considering that this is likely a heavily-used feature of the ORM.

Spent a few hours debugging something in a query only to find that the implementation of `order_by` on `SelectQuery` is:

```
@returns_clone
def order_by(self, *args):
    self._order_by = list(args)
```

This means that if one was composing a query based on a number of inputs (of which more than one might affect ordering) if `order_by` is called more than once, any prior `order_by` statements will be obliterated. Maybe we could toss in a `extend=False` `kwarg` to the method that, if `True`, will extend the `_order_by` list with the value of `*args`.

If you like that idea I can implement and send you a PR. Wanted to get your take before I did it, however. Right now to get around it I'm directly accessing `_order_by` if it is not `None` and appending/extending as I need.
