First cut at asynchronous geometry refactor.
Ongoing cleanup.
Ongoing geometry cleanup

Delete a ton of duplicated code forom each geometry worker, centralize it in createWorker.js
Rename numberOfCores to numberOfWorkers

Also some minor cleanup to createGeometry.
Merge remote-tracking branch 'origin/master' into issue1487
More cleanup

Also add specs for subdivideArray.
Disable asynchronous CZML geometry again, since we sitll need more changes before it can be turned on.
Fix test.
Less garbage

1. Use scratch variables when loading Cartographic arrays in CZML
2. There's no need to clone origin in EllipsoidTangentPlane because `scaleToGeodeticSurface` already creates a new instance.
3. Use the private variables in DynamicModelVisualizer for now to avoid ES5 property penalty every frame. (Will rewrite the visualizer soon).
Do not check for duplicate transferable objects

Web workers require a unique array of transferable objects.  We never have duplicate items naturally, but did not prevent it from happening.  The performance overhead of this is immense, so we removed the check and put the onus of the geometry creator to copy data that needs to be duplicated.
Merge branch 'master' into issue1487
Fix #1548
Merge remote-tracking branch 'origin/master' into issue1487
Merge branch 'primitive-prologue' into issue1487
Refactor asynchronous primitive processing

90% of asynchronous primitive processing time was taken up by the browser doing a structured copy of the massive amount of data we were passing around.  This change makes us much smarter about how and when we move data between workers.  It completely eliminates the overhead of the roundtrip steps between createGeometry and combineGeometry as well as transferring the final results.  It does not remove the overhead from the initial createGeometry call, which will be done at a later date.

Most of the benefit is achieved by manually packing the data we need to send into TypedArrays, rather than relying the browsers built in copying mechanism.  We then transfer the array to the worker, which has almost no overhead.  The packing/unpacking code lives in PrimitivePipeline, where there is a set of pack/unpack functions for each worker parameters and results.
Merge branch 'primitive-prologue' into issue1487
Fix createTaskProcessorWorker

I introduced a bug earlier in this branch that was preventing errors from propagating.
Merge branch 'master' into issue1487
Remove new numberOfWorkers property for now.

It will be exposed differently in a future PR.
Remove unused variable.
Changes after review

1. No need to serialize the dirty flag in attribute locations.
2. Fix potential crash when dis-allowing picking.
3. Add TypedArray transfer workarounds for older versions of Firefox.