Add MapGuide untiled map support to ol3.

This adds a new ol.source.MapGuide class that is initialized with an options object that can contain the following values:
 - projection: The projection of the Map Definition in EPSG format
 - url: The mapagent URL
 - useOverlay: Determines whether the GETMAPIMAGE (false) or GETDYNAMICMAPOVERLAYIMAGE (true) will be used for requesting the map image. When using GETMAPIMAGE, you must include a valid MAPDEFINITION parameter in the 'params' option property. When using GETDYNAMICMAPOVERLAYIMAGE, you must include a valid SESSION and MAPNAME parameters in the 'params' option property.
 - metersPerUnit: A required value used for calculating the map scale needed by the image request. This value can be calculated using the MapGuide Web API or obtained through the new CREATERUNTIMEMAP operation in MapGuide Open Source 2.6
 - params: A set of key-value pairs to append to the mapagent request
 - extent: The bounds of the layer

An example is included to demonstrate this new layer source. Like ol2, this example uses the MapGuide Server on data.mapguide.com
Add ol.Object#getProperties
Don't build ol.css in check target
Export ol.Object#getProperties
Merge pull request #1334 from twpayne/build-check

Don't build ol.css in check target
Merge pull request #1333 from twpayne/object-get-properties

Add ol.Object#getProperties
Add ol.Observable for on, once, un, and unByKey methods
ol.Object extends ol.Observable
Using CONSTANT_CASE for geometry type
Using PascalCase for geometry enum values

This adds a bit more inconsistency to the library, but we didn't have complete consistency before.  Almost all existing string enum values are lowercase (a couple are camelCase and one is dash-separated).  The closure library isn't consistent either (with case for enum properties or values).  I imagine this could be justified in saying someone could blindly use GeoJSON type values in places, but in the end, you'll need to read the docs before guessing right.
This commit serves no purpose other than helping minimize a diff
Marking the geometry type enum as stable
Merge pull request #1297 from tschaub/observable

Create ol.Observable.
Fix a typo - it's writers, not witers
Merge pull request #1336 from ahocevar/fix-writers-typo

Fix a typo - it's writers, not witers
Proper namespace and sub-parser management

Instead of setting a dummy namespace, we can have setter methods
for the featureNS property to propagate them to sub-parsers. The
srsName is also a property which needs to be propagated to
sub-parsers.
Merge pull request #1337 from ahocevar/no-foo

Proper namespace and sub-parser management in OGC parsers
Use standard x, y axis order if we do not know better
Add Insert, Update and Delete writers

This change also adds some type annotations for better type
checking, introduces different write options for writing
transactions and queries, and provides new writeGetFeature and
writeTransaction methods.
Export getParser()

This reduces the API footprint of versioned parsers, because
only the base parser needs to be exported as symbol, and
versioned parsers can be accessed using the getParser() method.