Always add first segment when appending coordinates

When we have only a single point, we want to make sure it gets added (fixes #1821).

Because this code doesn't differentiate coordinates that are part of a linestring or linearring from those that are independent points, we always add the first segment (or pair of points).  In addition, coordinates for segments are appended whenever they represent a change in relationship with respect to the extent.  This keeps the code simpler for handling fills and properly capturing intersection points for linestrings.  This could be modified to save a few extra coordinates, but it provides for simpler code at a very minimal cost.
Fix calculation of ends in ol.geom.MultiPolygon#getPolygons
Merge pull request #1820 from twpayne/fix-multipolygon-get-polygons

Fix calculation of ends in ol.geom.MultiPolygon#getPolygons
Merge pull request #1822 from tschaub/append-first

Always add first segment when appending coordinates.
Update the pointer to the next block when reversing

Just reversing the array is not enough, the pointers to the
beginning of the next block must be changed to the reversed
array index.
Merge pull request #1824 from ahocevar/replay-hit-detection

Iterating through the hit detection replay batch fails when geometryRenderFunction returns false
pointer events generated by mouse events
source for ms pointer events (IE10)
source for native pointer events (IE11)
source for touch events
add polymer license info
use goog.bind, safari does not support the native bind
base interactions for pointer events on existing touch interactions
former touch interactions now use pointer events
copy properties for pointer event from internal browser event, not from google.event.BrowserEvent
allow dragging for mouse/ms/native when pointer is outside map viewport element
only track events when "pointerdown" event was received, because on native android browser wrong move events are sent with no "pointerdown" event
removes not needed WeakMap struct
add comment about an open bug with native Android browser (4.1.2) when the page is scrolled
makes `PointerEvent` a plain closure class, instead of trying to mimic a mouse event, which was required for the polyfill