Allow users to set projection with cartopy projection object
At present users specify the required plot projections with a string which is then converted to a cartopy projection object. This change allows users to provide their own cartopy projection object. The advantage of this is that they can more precisely specify the projection (supplying key word arguments to it for example).