[vector-api] Refactored ol.format.KML

WORK IN PROGRESS

This branch (based on #1383) is a WIP branch for a refactored KML reader. Notably:
- it's a total work-in-progress, as you can see from the large number of "Snapshot" commits
- it uses the double stack approach [described in this comment](https://github.com/openlayers/ol3/pull/1368#discussion_r8317743), the object stack is explicit, the parser stack is the call stack
- it does not yet include the important feedback from @bartvde and @tschaub ([comment](https://github.com/openlayers/ol3/pull/1368#discussion_r8308689)) regarding XML parsing.

These will be fixed! And I'll clean up the commit history before making a real pull request.