Cache DrawCommands in BillboardCollection.

Addressed issue #550

This seemed easy enough so I took a stab at it.  I kept it simple so we cache only as many as we need and discard them when we don't.
We could have a separte pool (or a generic ObjectPool) implementation if we want something more sphisticated, but I wasn't sure if the overhead was worth it.

What do you think @pjcozzi ?
Small JulianDate cleanups.

* Use a scratch variable for leap second lookups instead of allocating.
* Add an instance compareTo method, use that from LeapSecond.compareLeapSecondDate
Fix a number of places that were using reference equality on JulianDate instead of equals.
Fix typo.
Merge pull request #553 from AnalyticalGraphicsInc/billBoardDrawCommands

Cache DrawCommands in BillboardCollection.
Fix inconsistent name of cache variable
Merge pull request #558 from AnalyticalGraphicsInc/fixDateComparisons

Fix date comparisons to use equals
First cut at improved label outline support.
Add TileCoordinatesImageryProvider.
Use Cesium color instead of CSS color, and doc improvements.
More label improvements.
Add specs for TileCoordinatesImageryProvider.
Update CHANGES.md.
Share reproject types between layers but not contexts.
Avoid redundant ImageryLayerCollection events.
Fix doc typos.
Fixes #473
Fixes #473
Cleanup outline code

1. Partially revert Sandcastle example
2. Update CHANGES
3. Fix a failing test (by removing an uneeded check).
4. Update simple.czml to take advantage of improved outlines.
Hopefuly finally changes before pull request