logic ordering

basically this rewrite turns `var isMyHairDryInTheRain = (raining && hat || umbrella && opened)` into `var isMyHairDryInTheRain = (raining && (hat || (umbrella && opened))`... a significant change.

Also more tests to make sure slowparse passes the cases stated in the bug