Allow pointer-events to be set via options passed to shape
store the event listeners using a hash if the context have a leaflet_id.

When removing a layer,the slowest part was to remove the event from the map.  For each event, the removeEventListener method had to loop the whole list.  With thousand of layers, it become very slow to do.  With a hash used has an index to find event listeners for a given leaflet id, its no more an issue.
Path CANVAS adds a click event if clickable but do not clear it on remove.  This adds the necessary remove listener.
use a property for index length because its slow to get the first property or get the length of a hash.
code convention
filter out the last point of a polygon to account for GeoJSON compatibility
fix undefined error use cases
Fixes #1041, Android WebView triggers two clicks at once. This calls
L.DomEvent.stop(event) on the second if two clicks are triggered within 400ms
of each other. Double click is unaffected however.

There are other workarounds that focus on _fireMouseEvent(), however I had to
resolve it at the click event level as my map, markers, controls, were all
affected.
This makes sure we only do the Android duplicate click workaround on Android
This modifies the Android WebView phantom click workaround.
Previously it was blocking when an element had multiple click listeners
because those events were fired rapidly. Since Android fires its second
click at approximately 300ms after the first we do a check to make sure
that at least 100ms has elapsed but not more than 400ms.
Merge pull request #1278 from danzel/master

Fix jshint unhappiness (Thanks @Guiswa)
Robust array type check for cross-frame support

In a multi-frame DOM environment, if setView is called with an array for
the first parameter, a subsequent call to getBounds raises "Invalid
LatLng object" exception. This is the case if the array passed to
setView was created outside the iFrame that contains the map. It causes
the array test using "instanceof" in L.latLng to fail, and
_initialTopLeftPoint to not being properly initialized.

Thank you to Juriy Zaytsev for the full explaination:
http://perfectionkills.com/instanceof-considered-harmful-or-how-to-write-a-robust-isarray/
John Resig and Dean Edwards post comments and concur.
Merge pull request #1279 from oslek/isArray

Robust array type check for cross-frame support
update build
update changelog
update changelog
fix changelog
update changelog more
minor cleanup
update zoom control styles, extract general toolbar classes, fix #1209