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.
Remove conflicting fixity declaration
Merge pull request #886 from Melvar/append-fixity

Make (++) right associative