Extensive refactoring and small fixes to polyline handling

* Extracted various default values into a defaults map
* Commented out function parameters that are not used
* Removed tileLayer and maxzoom values from scope creation as these values can be put directly as attributes in order to minimize code in the controller.
* Inlined $el variable
* Normalized storage of directive's model into $scope object
* Normalized exposure of Leaflet objects into a $scope.leaflet object
* Extracted functions for basic setup operations of centering the map, adding & binding markers and polylines
* Simplified checking for presence of model values (markers, path, etc.)
* Added L.icon into L.Marker definition to better handle different marker images and dimensions (pending to make this configurable, but you can place whatever images in your app's img folder)
* Fixed polyline handling:
  * Now the color is also initialized at polyline creation
  * Leaflet expects a coordinates or L.LatLng object array into L.polyline.setLatLng. Now lat & lng properties in each latlngs entry is still enforced, but it's casted to L.LatLng before passing the collection to the polyline.
* Adapted specs