Leaflet/Leaflet — pull request #1941 by calandoa (2013-08-06 14:13:20+00:00)
Title: Added zomeTune feature and continuous zoom

I added an option for the tile layer object which allows to use a set of tile with a different zoom level.

For instance, we want a zoom range between 4 and 10, but we only have the tiles for 6 and 8. Setting the `zoomTune` option with the following command allows to redirect zoom 4, 5 and 6 to tiles with level 6, and other zooms to tiles with level 8:
```
L.tileLayer('foo/{z}/{y}/{x}.bar', {
minZoom: 4, maxZoom: 10,
zoomTune: [ 4, 4, 4, 8, 8, 8, 8 ]
});
```

It appears that implementing continuous zoom (aka non integer zoom level) was very easy after this, so I added a few modifications to the different control for testing and for making the best use of this new feature.

Note that `maxNativeZoom` and `detectRetina` seem useless (or at least can be simplified) with this new feature. Also, the code is not really optimized when changing the zoom slightly, as all tiles are discarded and put back. Only changing their size and position would be faster, but this was really too complicated with the current architecture.

Note also that I am a complete beginner in JavaScript / git / GitHub, so there might be problems with this patch. BTW it has not been tested with jake (not working on my host) but with a few different browsers (Opera / Firefox / Chrome with Linux / Windows / Android).