ENH: Perform a function on columns with same name in a merge()
Suppose I have two DataFrames:

```python
left = pd.DataFrame({'key': list("abcd"), 'value': [1, 2, 3, 4]})
right = pd.DataFrame({'key': list("aceb"), 'value': [5, 6, 7, 8]})
```

Columns with with the same name are given suffixes in a `merge()`:

```python
In [8]: pd.merge(left, right, on='key')
Out[8]:
  key  value_x  value_y
0   a        1        5
1   b        2        8
2   c        3        6
```

I would like to invoke a function instead:

```python
In [9]: pd.merge(left, right, on='key', combine=lambda x, y: x + y)
Out[9]:
  key  value
0   a      6
1   b     10
2   c      9
```

In a left/right/outer join, missing keys imply no function call (just take the single value):

```python
In [10]: pd.merge(left, right, on='key', how='outer', combine=lambda x, y: x + y)
Out[10]:
  key  value
0   a      6
1   b     10
2   c      9
3   d      4
4   e      7
```

Only one of `combine` or `suffixes` parameter can be specified. Of course, the user can simply request an *override* by taking only the right's values if both keys are present:

```python
In [11]: pd.merge(left, right, on='key', how='left', combine=lambda x, y: y)
Out[11]:
  key  value
0   a      5
1   b      8
2   c      6
3   d      4
```