Adds various transformation functions - shift, rotate, scale, skew

I have stuck with a pretty simple API for the new functions, similar to the way `buffer` currently works. As such, the functions only accept one value for each parameter for the whole `GeoSeries`, rather than index-specific parameters such as a different rotation value for each geometry (i.e., users must use a float rather than `Series` of floats). This keeps things simpler and consistent, and if a user really wants index-specific parameters, they can use the shapely functions directly inside `Series.apply`. This PR also contains a few other minor adjustments/fixes.