L.Control.Layers: 'overlayadd' and 'overlayremove' event should also fire on external overlay changes.
External baselayer changes should fire 'baselayerchange' instead of 'overlayadd'
'baselayerchange' event should fire with layer name(use object in _layers of L.Control.Layers) instead of only layer.
Merge branch 'overlay-event' of https://github.com/Xelio/Leaflet into Xelio-overlay-event

* 'overlay-event' of https://github.com/Xelio/Leaflet:
  External baselayer changes should fire 'baselayerchange' instead of 'overlayadd' 'baselayerchange' event should fire with layer name(use object in _layers of L.Control.Layers) instead of only layer.
  L.Control.Layers: 'overlayadd' and 'overlayremove' event should also fire on external overlay changes.
simplify control layers events code #1634