Rewrite Criteria ordering API

This introduces a new Order class, which encapsulates the ordering (asc
or desc), the property to order by, and whether or not case is ignored.

Resolves #19