Ignore extra dimensions and pad with NaN for missing dimensions
Don't react to keyboard events when the focus is on editable inputs
Merge pull request #903 from fredj/keyboard

Don't react to keyboard events when the focus is on editable inputs
Add a concat function for concatenating strings
Call concat instead of using math op in FE expression parsing
Cast to numbers for literals

There are times when we parse from XML without a schema (e.g. KML).  In these cases, features attributes will always be strings.  We can cast to number when creating literals from symbolizers and then assert `!isNaN` instead of asserting that they are numbers before.
Add KML earthquake example
Missing test dependency
Leaving the + operator as a convenience for concatenating strings

When people need to serialize in a format that differentiates string concatenation from addition, they can use the new `concat` function in an expression.  But I don't think we need to throw if people use `+` with strings.
Add externs for GeoJSON crs member
Read crs from top-level object when parsing as features
Merge pull request #913 from tschaub/dimension

Allow for vector data with unknown or inconsistent dimension.
Remove unnecessary cast and save 15 bytes using goog.isDef
Merge pull request #921 from tschaub/geojson-crs

Parse top-level crs member when reading features from GeoJSON.
Merge pull request #920 from tschaub/point-examples

Cast to number when creating literals from symbolizers where literal properties must be numeric.
Export ol.source.Source#getExtent
Merge pull request #924 from elemoine/getextent

Export ol.source.Source.prototype.getExtent
Accept null crs
Merge pull request #927 from tschaub/null-crs

Accept null crs in GeoJSON.
Use @exportSymbol instead of @exportClass|Function

This commit uses @exportSymbol in place of @exportClass and @exportFunction for exporting single-arg constructors and functions. This is a simplification, removing the need for the specific @exportClass and @exportFunction statements, and the corresponding Export constructors/functions doing "external objects to internal objects" translations in the generated code (exports.js).

The definitions of @interface properties in the generated externs file do in themselves prevent renaming of object properties, unless DisambiguateProperties and AmbiguateProperties are set to true. DisambiguateProperties and AmbiguateProperties indeed make the equation more complex. But, by defining the @typedefs alongside the @interfaces in the externs file, as suggested by John Lenz on the Closure Compiler mailing list [*], it looks like DisambiguateProperties and AmbiguateProperties no longer mess with property renaming - properties defined in the externs file are not renamed.

Other notes:

This change, by removing the use of @exportClass and @exportFunction, may allow using the @export annotation in the future. Also, with this change, and @exportClass and @exportFunction not being used anymore, the generate-exports.py script can be simplified. This will be done in a future commit if this simplification  works as expected.

[*] <https://groups.google.com/d/msg/closure-compiler-discuss/G3B9oSN6a4c/-DqMk_B8uFEJ>