Fix join conditions

- [x] expose with test
- [x] fix wrong positions bug
- [x] fix lost condition ordering bug
- [x] determine whether the above fix removes the need for `condition.flip` (which no expressions implement)
   - no longer needed