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.
Ah, got ahead of myself. Reading further on I can see that this dictionary is being used for more than simple mappings.

I suggest we "live" with this approach, and revisit this approach for a considered re-factor after the dust settles from the effort of the web services sprints.