Start the edit package by adding addresses.

The `SimpleAddress` type adds `reverse()` to addresses, and it can only appear on the RHS of a Plus or Minus address, not the LHS. It's not clear how to reverse other address types, and sam's address language doesn't allow it anyway (it always inserts a simple address as the RHS operand of a compound).

There are also a few unexported types such as simpleAddr, addAddr, and compoundAddr which are there only because you cannot add methods to interfaces. I really wanted `Plus`, `Minus`, `To`, and `Then` to be methods. I tried a version where they were functions; it was ugly. I don't like lispy prefix notation: `To(Line(0), End())`. I much prefer `Line(0).To(End())`