New operator to consume whitespace

Can now use ~~ to consume whitespace when sequencing joins.
Also rule { } now consumes whitespace to the right of it.
Both of these require an implicit def whitespace: Rule0 to be defined.