Make (++) right associative

Since `(++)` recurses on its left argument, `(l ++ c) ++ r` traverses l twice,
while `l ++ (c ++ r)` only once.

Furthermore, making `(++)` the same precedence as `(::)` enables the two to be
mixed, which might be desirable when building a list out of both sublists and single elements.