BUG: merge on should accept Series
Prob need a better example, but xref #2996 

these should accept Series (and align)!

```
In [47]: x = DataFrame({'A' : list('aabb'), 'B' : [1,2,3,4]})

In [48]: x.merge(x, left_on=['A','B'], right_on=['A',x['B']], how='left')
TypeError: 'Series' does not have the buffer interface

In [49]: x.merge(x, left_on=['A','B'], right_on=['A','B'], how='left')
Out[49]: 
   A  B
0  a  1
1  a  2
2  b  3
3  b  4
```
