Improve font rendering and outlines

To remove jaggedness of outlines, we now set context.lineJoin to `round`.
After doing this, I realized that lots of letters where still being cut
off on both sides.  It turns out the bounding width of the letter that
we compute is actually wider than the browser computed width.  Using our
own values prevented the cutoff.

I still want to test this more with a variety of fonts and settings to
make sure it's good, any help in that area is appreciated.

I used thie jsFiddle to compare our per-letter rendering to typical "whole"
word rendering in browsers: http://jsfiddle.net/AbdiasSoftware/48m4B/2/
We should match the bad kerning and all.

Fonts also look better at smaller resolutions now, so I removed the label
hack I had in simple.czml.

Fixes #1141
Improved extruded polygon performance and slightly improve combining geometries. Also reduce memory allocations.
More extruded polygon optimizations.
Don't double request font outline width.

This was previously a hack to try and make fonts looks better in Cesium.
Minor cleanup.
Fix failing tests.
Fix font issue uncovered in Firefox

We should take the larger value between width and computedWidth.  As a result, we can now always start drawing at x=0 instead of using an offset.
Merge remote-tracking branch 'origin/master' into font-outlines
Undo uneeded test change.
Disable image smoothing in writeTextToCanvas.
Revert GeometryPipeline changes and slightly reduce memory allocations.
Merge branch 'master' into geometry-perf
Reduce garbage collection in WallGeometryLibrary.
Minor performance improvement by removing inverse trig calls in a loop and remove more temporary object creation.
Remove missing cartesian allocation that could be a scratch.
Merge pull request #2322 from AnalyticalGraphicsInc/font-outlines

Improve font rendering and outlines
Merge branch 'master' into geometry-perf
Updates from review.
Merge pull request #2329 from AnalyticalGraphicsInc/geometry-perf

Improve extruded polygon and wall performance.
Clean up dynamic geometry updaters

The dynamic geometry updaters in the DataSource layer did not have
the same semantics as the rest of the visualizations system.  Mainly,
an undefined value would cause Cesium to crash instead of simply not
rendering an object.  This change uses the newer Property.get helper
functions in order to both clean up the code and follow the same rules.

Fixes #2252