Merge Rhs/GuardedRhs and GuardedAlts/GuardedAlt.

This patch merges the isomorphic data types Rhs and GuardedAlts,
and GuardedRhs and GuardedAlt. This change removes quite a bit
of code duplications, for this library and for users alike.

The only thing that may become more complicated is pretty printing,
where the context determines whether an equals sign or a right arrow
should be used when printing Rhs/GuardedRhs.

This fixes parent's #43.
Update tests (Alts -> Rhs)