Adding click and clickDone events to TransformControls for Gizmo interaction

This replaces [5144](https://github.com/mrdoob/three.js/pull/5144)

In addition to the aforementioned reasons, I am using these events for "undoable" change tracking in my application.  Too many objectChanged events fire when dragging around the gizmo to effectively track a single transform action.

I have added a commit of the math-only js file for two reasons:
  a) all tests now pass immediately after pulling
  b) the math functions are useful, and someone might want to use them on their own
I'm wondering if we need to check for `_dragging`. It is because you don't want `mouseUp` events when nothing moved?