Make Primitive and GeometryInstance picking consistent

More cleanup from the transit hackathon.  We used both primitives and geometry instances in [Open Philly Globe](http://www.openphillyglobe.org/), which made dispatching events from picking messy.  For example:
```javascript
var pick = scene.pick(movement.endPosition);
if (Cesium.defined(pick) && Cesium.defined(pick.id)) {
    // Deal with geometry instance
} else if (Cesium.defined(pick) && Cesium.defined(pick.primitive)) {
    // Deal with primitive
}
```
Now everyone has a user-provided `id` as part of the `pick` object.
```javascript
var pick = scene.pick(movement.endPosition);
if (Cesium.defined(pick) && Cesium.defined(pick.id)) {
    // Deal with geometry instance or primitive.  pick.primitive is still defined too.
}
```