Adding proj4 crs method

Hi all,

This change modifies _EPSGProjection by making it a subclass of a new _Proj4Projection which takes a proj4 string and optionally projection bounds as parameters. Also adds a proj4 method to crs.py which calls the _Proj4Projection class directly so you can instantiate the projection given a proj4 string rather than just an EPSG code.

Any issues please give me a shout (and I'll email through the CLA tomorrow from work)