eaburns/T — pull request #24 by eaburns (2014-12-26 20:19:35+00:00)
Title: Start the edit package by adding addresses.

The `AdditiveAddress` and `SimpleAddress` types enforce precedence on the Plus, Minus, To, and Then operators:
* `SimpleAddresses` can only appear on the RHS of Plus or Minus.
* Addresses resulting from `To` and `Then` cannot be added or subtracted.
I believe that this is consistent with how sam(1) parses address strings.

There are also a few unexported types such as simpleAddr and addAddr 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())`