ENH: Use left._constructor on pd.merge
Use the _constructor property when creating the merge result to
preserve the output type.

If a [GeoPandas](http://github.com/geopandas/geopandas) `GeoDataFrame` is merged with a `DataFrame`, the result is hard-coded to always be `DataFrame` [GeoPandas Issue #118](https://github.com/geopandas/geopandas/issues/118). We'd like it to return `GeoDataFrame` in these cases

```
>>> import geopandas as gpd
>>> import pandas as pd

>>> gdf = gpd.GeoDataFrame(...)
>>> df = pd.DataFrame(...)

>>> merged = pd.merge(gdf, df, on='column')
>>> type(merged)
GeoDataFrame
```

This PR uses `left._constructor` to generate the result type for merge operations.

sure

can u add a test pls (create an object that inherits from DataFrame and use it to confirm that this is correct)
 @jreback Done.
 It would also be nice to mention this in the docs (i.e. that the output type is taken from left, so that `pd.merge(df, gdf, on='column')` still returns a DataFrame...)
 @jwass this is fine, can you update the docs (and do-string). squash and looks ready.
 @JanSchulz Missed your original comment from a few weeks ago - sorry for the delay here.

@jreback squashed and rebased. Let me know if the docs should change somewhere else or should be re-worded.
 can you add a note in v0.15.0.txt in API section (and reference this PR number)
 @jreback Yes - added the `__finalize__` call in `ordered_merge`. While I was at it, added the test/doc for `ordered_merge` to reflect the new behavior here too.
Added the note for v0.15.0. Squashed, rebased.
 merged via https://github.com/pydata/pandas/commit/123a55579007457f0a901404600a6ea470daf16f

thanks!
