Controls for binary join ordering

- [x] join swap
~~- [ ] join rotate right: only narrowly applicable~~

- includes some new debugging utilities
- How should we specify where to apply the rule: maybe mark the joins in logical plan, then have rule fire on only those