Improve constructors
Move Vec3, Math to math/
Add DistanceConstraint indices argument

Enable constraining multiple sets of particles per instance
Add DistanceConstraint bounds

Enables DistanceConstraint to specify lower and upper bounds to
affect particles.
Move Vec3 tests
Refactor to allow adding duplicates

Add Collection util to remove all instances if duplicates exist
Cleanup DistanceConstraint.applyConstraint
Cleanup Vec3
Add ParticleSystem.each context arg
Update test list style
Add angular constraint

- add AngleConstraint
- add Vec3.angle
- add ParticleSystem.getAngle
Fix AngleConstraint for obtuse angles

Use law of cosines to calculate A -> C length
Fix AngleConstraint for very obtuse angles

Move particle B relative to projected position on AC
Fix solving AngleConstraint with coincident particles
Improve catching coincident particles in AngleConstraint
Update AngleConstraint

- add support for angle range
- fix issue when angle approches PI
Add AngleConstraint tests
Add ParticleSystem.perturb utility
Update Vec3

- add length, distance
- fix angle
Update jshint