nicer OrthogonalRectangle construction
Remove perimeter/interior/exterior, add --, distance

"When I'm working on a problem, I never think about beauty. I think only
how to solve the problem. But when I have finished, if the solution is
not beautiful, I know it is wrong."

I liked the usage that results from having perimeter/interior/exterior,
but the implementation was unacceptably verbose.

Expanded `ArrowOps`:

* Add a `--` method for creating `LineSegment`s.
  `(a -> b).toLineSegment` can now be written as `a -- b`.

* Add a `distance` method.
  `(a -> b).length` can now be written as `distance(a, b)`.