SciTools/cartopy — pull request #507 by esc24 (2014-10-30 17:16:08+00:00)
Title: Ability to add WMS layers to different GeoAxes projections

The current WMS support in cartopy is limited to services that provide the data in EPSG:4326 (PlateCarree) and the layers can only be plotted in GeoAxes with a projection of PlateCarree(). This PR allows users to add WMS layers to geoaxes in different projections. It also extends the layer SRSs that can be used to include Google Mercator (EPSG:900913) and potentially more by adding mappings to an OrderedDict. Examples below.

```python
import cartopy.crs as ccrs
import matplotlib.pyplot as plt

proj = ccrs.Orthographic(central_longitude=-120)
ax = plt.axes(projection=proj)
ax.coastlines()
ax.set_extent([70000, 5740000, 1330000, 5310000], crs=proj)

url = 'http://gis.srh.noaa.gov/arcgis/services/NDFDTemps/MapServer/WMSServer'
layer = '16'
ax.add_wms(url, layer)
plt.show()
```
![figure_1](https://cloud.githubusercontent.com/assets/1634089/4847976/cb74eb0a-6056-11e4-8bc5-886be4b66406.png)
(Note the data extends beyond the coastlines (see https://www.mapbox.com/mapbox.js/example/v1.0.0/wms/)

and
```python
import cartopy.crs as ccrs
import matplotlib.pyplot as plt

ax = plt.axes(projection=ccrs.InterruptedGoodeHomolosine())
ax.coastlines()

url = 'http://vmap0.tiles.osgeo.org/wms/vmap0'
layer = 'basic'
ax.add_wms(wms, layer)
plt.show()
```

![figure_2](https://cloud.githubusercontent.com/assets/1634089/4847983/d6b50554-6056-11e4-9f94-91e9ae73c2de.png)

Suggestions for testing are very welcome.