BUG: Align index if set_geometry input is Series

If DataFrame's set_geometry() is called with a Series, align
the index.

Before this fix, these could have different results because `set_geometry` didn't use the index:
```
df = DataFrame(...)
g = GeoSeries(...)
df.set_geometry(g)  # Unaligned
```
vs.
```
df = DataFrame(...)
g = GeoSeries(...)
df['geometry'] = g  # Aligned
df = GeoDataFrame(df)
```