Various tweaks and cleanups for clarity/consistency

In no particular order the following changes were made to the Unbounded test case:
- Ensure seed is set for every test case
- Use List instead of Object[] everywhere
- Package up "options" into an Enum with helper methods
- Use composed Comparators for sorting DB instead of a single method
- Use StringBuilder instead String addition
- Add test watcher for printing out query and seed instead of in ever assert
- Switch to throwing ComparisonFailure so entire result set is visible in error output
- Make a coherent test case name out of the orders by clauses
- Generate all 81 permutations instead of the first 64 every time
- Use a simpler cross product method for actually generating the perms

Feel free to push back if you think some of the 'cosmetic' changes aren't clearer (e.g. Object[] vs List). The other changes (ComparisonFailure, all perms, etc) are needed regardless.

A similar set of changes should be made to the bounded case. Additionally, `IS NULL` will need to be used instead of a comparison (otherwise it gets optimized away).