Add a Quicksort implementation.

Quicksort makes different tradeoffs than the existing merge sort: It does not allocate, but is not stable.

r? @pcwalton