Simplify Compact

The reason for this is the second commit. But in making that I realized that it reordered the filters in the `OrFilter` (or `AndFilter`), so I made that deterministic. Another option would have been to just change the unit tests to have the new order and hope that it doesn't change that often. The order is not important for performance or correctness reasons.