Implement widget drawing, add Translate tool.
This commit has a lot of changes underpinning "implement widget drawing."
- Added Zoodle.updateUI() that redraws widgets based on the current selection, similar to `updateHighlights`.
- UI input handling uses the same event handlers, so added the concept of layers to distinguish which layer the event is coming from.
- Added a `TemporaryTool` that draws the widgets of one tool while acting as another, to allow things like orbiting and panning without dropping the original tool.