Trigger popupopen/close on markers too.
Add tile bounds option to limit tile loading to a given region
radius is part of CircleMarker style so should be changeable in using
setStyle();
Allow pointer-events to be set via options passed to shape
fixed bug where wms tilesize option was ignored when setting
 wms params width and height
Rename TileLayer.options.tileBounds to bounds
Better parameter handling for TileLayer bounds
GeoJSON GeometryCollection passes consisent params to pointToLayer
Use proper factory call for bounds option
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
Add svg source for icon and replace icon with one from the SVG. (Redrawn from original, pretty close but not perfect)
Add iconRetinaUrl and shadowRetinaUrl to set urls for retina icons. Add a retina version of the default icon and use it.
Another pass at redrawing the icon. This one looks really close to the original
Move marker svg to src/images/marker.svg
Another pass at the icon. Moved the mid point of the circle down half a pixel to improve the roundness. Tweaked the size of the white circle to better match the old one.