Added constructor for GeometryCollection objects

This commit allows GeometryCollection objects to be created from a list of existing shapely geometries.

Example usage:
```
p = Point(51, -1)
l = LineString([(52, -1), (49, 2)])
gc = GeometryCollection([p, l])
```
An empty GeometryCollection can still be created by instantiating without any arguments, or with an empty list:
```
>>> gc = GeometryCollection()
>>> gc.to_wkt()
'GEOMETRYCOLLECTION EMPTY'
```

This allows the `affine_transform` function to work with GeometryCollection objects (the test for this has been updated).
```
>>> from shapely.affinity import translate
>>> from shapely.wkt import dumps
>>> gc2 = translate(gc, 5, 0)
>>> dumps(gc, trim=True)
'GEOMETRYCOLLECTION (POINT (51 -1), LINESTRING (52 -1, 49 2))'
>>> dumps(gc2, trim=True)
'GEOMETRYCOLLECTION (POINT (56 -1), LINESTRING (57 -1, 54 2))'
```