Added Ordering of results with a DataComparator

You can now defined a specific DataComparator to order data. This has
made the API a bit more difficult, so the next change will have to
involve adding a builder pattern.