Add TileWMS setUrl(s)

Fixes #1217.

There's an example at http://probins.github.io/cz.html which accesses the WMS of the Czech mapping agency. This has the different scale map rasters, and orthophotos, as different 'services', so, to have these in the same layer, as you zoom in, the service part of the url has to be changed as well as the layers param for the different resolutions.
The urls in this example are all on the same server, but you could use the same technique to load tiles from different servers in the same layer, as long as the other parameters, such as projection and tilesize, are the same. It's quite common for example for orthophotos to be on a different server from other map layers.

I ran into a tilegrid issue when creating this. I'll raise a topic on the list for this.
I do not see much value in comparing references. I'd unconditionally do `this.urls_ = urls`.

Also, I'm wondering whether the tile cache should be cleared.