Add and export View2D.calculateExtent
Point-in-polygon improvements

As suggested by @tschaub in #674, geom.pointInPoly is not needed
if we have geom.LinearRing#containsCoordinate. This pull request
also adds tests and documentation on the limitations of the
containsCoordinate method.

I think for now it is ok to keep geometry/topology functions as
simple as possible in ol3. If we decide to not rely on third
party libraries like jsts for topology operations, we can always
refine what we have and e.g. port topology operations over from
ol2.
Entertaining linter and compiler
Add className option to ol.control.Attribution
Add className option to ol.control.FullScreen
Add className option to ol.control.Logo
Add className option to ol.control.MousePosition
Add className option to ol.control.ScaleLine
Add className option to ol.control.Zoom
Inline simple function that is only called once
Make zoom slider control options optional
Add className option to ol.control.ZoomSlider
Rename ol-mouseposition to ol-mouse-position
Use className in mouse position example
Merge pull request #692 from ahocevar/pnpoly

Point-in-polygon improvements. r=@bartvde
Fix NaN test
Merge pull request #693 from twpayne/class-name

Add className option to control options
Merge pull request #697 from twpayne/fix-nan-test

Fix NaN test
Use xmleql in the KML tests

This also involves some modifications to the xmleql functionality now that
it was tested with a real-life case (KML). Also, some of the input KML files
needed to be changed since we currently cannot roundtrip 100% of the input.
Remove google.exports

This .exports file made goog.require be exported as a null function. This was needed to be able to run the ol3 examples uncompiled against the ol.js build. Now that host-examples target removes the goog.require statements from the examples' js files (74b8fea6) we don't need to export goog.require anymore.