Extend goog.events.Event for custom vector layer events

Vector events are currently just object literals with a `@typedef`.  In the `dispatchEvent` sequence, a `goog.events.Event` instance is created and properties from this object are copied to it.  It is a bit more straightforward just to create a custom event type.

This also creates unique event type values - so listeners registered for `'change'` won't get called with both `goog.events.Event` and `ol.layer.VectorEvent` instances.