Improve Polygon Triangulation Algorithm

This replaces the O(n^2) ear clipping algorithm with an O(nlogn) random
cut algorithm.
Follow JSHint coding standards
Use DeveloperError instead of throwing object
A bit of refactoring

- Added changes to CHANGES.md
- Renamed earClip2D to triangulate
- Changed applicable new methods to be private
A few more fixes

- Changed tests to use "triangulat"e instead of "earClip2D"
- Added a test case compliments of @hpinkos
- Made sure that intersection testing tests from first to last vertex
- Fixed the case of polygons that have a side that intersects with a
  vertex and added test case (algorithm now prunes unnecessary in-line
  triangle that is created)
Always another corner case...

- Deals with cut validation corner cases (see comments)
Fail the build when JSDoc fails.
Merge pull request #947 from DavidHudlow/master

Improve Polygon Triangulation Algorithm
Reorg b20 in CHANGES.md
Fix doc build
Add Rathyeon and David Hudlow to contributors.
Merge pull request #1088 from AnalyticalGraphicsInc/fixDocError

Fail the build when JSDoc fails.
Merge branch 'master' into dynamicScene-properties

Conflicts:
	CHANGES.md
Fix CHANGES after merge.
Merge branch 'dynamicScene-properties' into dynamicScene-es5-properties