First Cut at Client Scripting support and hand/particle collisions

This adds the following features:

*Client side scripting:*
- Interface now loads and runs JS files.
- Multiple scripts can run simultaneously
- Scripts can be terminated by choosing the "Stop [script name]" menu item.
- Scripts terminate on shutdown of app.
- Scripts can access Agent, Voxels, and Particles variables same as in the assignment-client

*Hand/Particle Collisions:*
- findClosestParticle() is now working correctly and detecting that a particle is in a target radius.
- Particles will collide with hands and reflect off face of hand, with added velocity from the hand
- Menu item to show hand target
- Menu item to move toy ball to hand instead of finger

*Known Issues:*
- particle to hand collision don't work as well as collisions with voxels and other particles, still working on this.
- if multiple scripts are sending voxels at same time, sometimes things get corrupt and crash.

*To Do:*
- fix known issues above
- change assignment client/agent to use new ScriptEngine class