Change translations to be from dragging points

Summary:
Previously, translations were from the movablePolygon's onMove
This worked poorly on lines, and didn't work at all on multiple shapes.
In addition, it is pedagogically nicer to have translations be more
intentional in describing the translation as something that brings one
point to another point.

The new translations allow you to drag points, and then all points are
translated. This makes the pedagogy nice and the logic for handling
multiple shapes reasonably simple.

This commit also adds line segment shape types to the dropdown.

Unfortunately though, there are various ugly hacks to get this
functionality to work, which can be seen by the amount of comments
explaining them. Have I mentioned how I dislike our varied onMove and
onMoveEnd semantics, which barely provide enough information to be
actionable for slightly non-standard use cases? Some of this ugly code
unfortunately seems necessary for now, although I'd like to maybe
overhaul our onMove system a bit to provide a more standard interface
(no (x, y) vs (dX, dY) split; only passing coordinates to onMoveEnd once
they've been processed through onMove; pass previous and/or start values
to both onMove and onMoveEnd.

Test Plan:
test.html, choose 2 line segments, translate the shapes. Make sure the
translations listed in the transformation list are accurate.

Reviewers: alex

Reviewed By: alex

Differential Revision: http://phabricator.khanacademy.org/D5126