Make all Addresses additive.

This removes the AdditiveAddress type; there's no need for it.
I created it to enforce that , and ; take precidence over + and -.
That's how sam's address parsing works.
With AdditiveAddress it's impossible to write an address like (a1,a2)+a3,
which sam's address parser would never generate (it has no parens).
It's redundant to write (a1,a2)+a3, since it's just a2+a3.
But it's clear how to compute such an address,
and it's no less redundant than a1,a2,a3, which sam will parse just fine.
So, let's just handle it and remove the extra type.

SimpleAddress, however, stays.
SimpleAddress adds additional functionality: reverse().
It's not obvious how to reverse a , or ; address,
so keeping the SimpleAddress type elides the entire issue.