Simplestyle

NOTE: Merge #2148  and #2161 before even looking at this (since the diff is overly large without them).

I would like to get this into 1.2, if possible.

* Added `GeoJson.fromUrl` to make it easy to add a data source in less code.
* Added support for the GeoJSON [simplestyle specification](https://github.com/mapbox/simplestyle-spec). [Sandcastle example](http://localhost:8080/Apps/Sandcastle/index.html?src=GeoJSON%20simplestyle.html);
* Added `PinBuilder` class for easy creation of map pins. [Sandcastle example](http://localhost:8080/Apps/Sandcastle/index.html?src=PinBuilder.html);
* Added `Color.brighten` and `Color.darken` to make it easy to brighten or darker a color instance.
* Changed default `GeoJSON` Point feature graphics to use `BillboardGraphics` with a blue map pin instead of color `PointGraphics`.

Here's what the pins generated by the new `PinBuilder` class look like:
![image](https://cloud.githubusercontent.com/assets/1495196/4452134/fb3e54b6-4841-11e4-8d7b-3554d6e98dda.png)

I totally agree with you and this is on my to-do for a future pull.  I actually tried to make it happen and ran into a couple problems so I decided to punt for now.

1. ConstantProperty currently requires that non-basic types have `clone` and `equals` functions.  We should probably provide a way to tell ConstantProperty to just use reference comparison and always return the specified reference instead of cloning.  (or specify our own clone/equals).  We could create a special ImageProperty, but I think that's overkill, I'd like to keep number of special properties low.
2. When `Billboard.image` is assigned a canvas, it doesn't know how to generate a unique id for it, so it adds a new texture every time; which leads to running out of memory.  One idea for solving this issue is to have Billboard use the canvas.id property as an identifier (if it's set), and cache it like it does urls.  If we can't rely on id, then we would need to use `toDataURL` anyway for caching.