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
Yes, that was why I initially called it "gizmoDrag."  Could we pass it as
part of the event ? Or, alternative, create dragStart and dragStop events
to use in addition?

On Wed, Sep 10, 2014 at 9:13 PM, Mr.doob <notifications@github.com> wrote:

> In examples/js/controls/TransformControls.js:
>
> > @@ -957,6 +961,10 @@
> >
> >  		function onPointerUp( event ) {
> >
> > +			if ( _dragging && ( scope.axis !== null ) ) {
>
> I'm wondering if we need to check for _dragging. It is because you don't
> want mouseUp events when nothing moved?
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/mrdoob/three.js/pull/5271/files#r17399462>.
>