wms proxy

DO NOT MERGE or MERGE AT YOUR OWN RISK!

Down the rabbit hole, a suggested fix for #946. I saw that authenticated geoserver requests go via the proxy controller, so why not just run them all through?

Have a crack at:
http://dfruehauf.emii.org.au

Still more work to be done here. I think that in general there should be a designated `openlayers` proxy in addition to the ProxyController.
I was just thinking the same thing actually (that this whole approach perhaps in wrong).  

Another alternative would be to utilise `UrlMappings` and a mapping between a dynamic action name and an external url, e.g.:

Instead of:

http://localhost/portal/proxy?url=http://geoserver-static.aodn.org.au/geoserver/baselayers/wms?LAYERS=default_bathy&TRANSPARENT=TRUE&VERSION=1.1.1&FORMAT=image%2Fpng&QUERYABLE=false&EXCEPTIONS=application%2Fvnd.ogc.se_xml&SERVICE=WMS&REQUEST=GetMap&STYLES=&SRS=EPSG%3A4326&BBOX=135,45,180,90&WIDTH=256&HEIGHT=256

have:

http://localhost/portal/proxy/geoserver-static/baselayers/wms?LAYERS=default_bathy&TRANSPARENT=TRUE&VERSION=1.1.1&FORMAT=image/png&QUERYABLE=false&EXCEPTIONS=application/vnd.ogc.se_xml&SERVICE=WMS&REQUEST=GetMap&STYLES=&SRS=EPSG:4326&BBOX=135,45,180,90&WIDTH=256&HEIGHT=256


Config.groovy:
```
def proxyMappings = [
    "geoserver-static":  "http://geoserver-static.aodn.org.au/geoserver",
    ...
]
```