Fix fill patterns.

This fixes fill patterns so that they work again.  I think this and related code could stand some refactoring - shapes, patterns, images, etc are all being handled slightly differently - but for now it works.

It also enables text as an option for markers, e.g.
```js
L.mapMarker({
  text: {
    text: 'some text',
    'font-size': 30
  }
});

I am really not sure about the text thing, this may need to be completely different based on how you want it to work with lines.  I'm not testing that particular case (text on a path).