title: pandas.merge fails when merging on timestamps columns with tzinfo
body: <p>I need to do a merge on Timestamps columns but the behaviour depends on wether the timezone is set or not.</p>
  
  <p>The following code works fine</p>
  
  <pre><code>import pandas as pd, datetime
  now = datetime.datetime.now()
  df1 = pd.DataFrame({'ts': pd.to_datetime([now])})
  df2 = pd.DataFrame({'ts': pd.to_datetime([now])})
  pd.merge(df1, df2, on='ts')
  </code></pre>
  
  <p>In contrast, this does not </p>
  
  <pre><code>import pandas as pd, datetime
  now = datetime.datetime.now().replace(tzinfo=pytz.utc)
  df3 = pd.DataFrame({'ts': pd.to_datetime([now])})
  df4 = pd.DataFrame({'ts': pd.to_datetime([now])})
  pd.merge(df3, df4, on='ts')
  </code></pre>
  
  <p>I have the following error</p>
  
  <pre><code>/path/to/env3.4/lib/python3.4/site-packages/pandas/tools/merge.py in merge(left, right, how, on, left_on, right_on, left_index, right_index, sort, suffixes, copy, indicator)
       33                          right_index=right_index, sort=sort, suffixes=suffixes,
       34                          copy=copy, indicator=indicator)
  ---&gt; 35     return op.get_result()
       36 if __debug__:
       37     merge.__doc__ = _merge_doc % '\nleft : DataFrame'
  
  /path/to/env3.4/lib/python3.4/site-packages/pandas/tools/merge.py in get_result(self)
      194             self.left, self.right = self._indicator_pre_merge(self.left, self.right)
      195 
  --&gt; 196         join_index, left_indexer, right_indexer = self._get_join_info()
      197 
      198         ldata, rdata = self.left._data, self.right._data
  
  /path/to/env3.4/lib/python3.4/site-packages/pandas/tools/merge.py in _get_join_info(self)
      323              right_indexer) = _get_join_indexers(self.left_join_keys,
      324                                                  self.right_join_keys,
  --&gt; 325                                                  sort=self.sort, how=self.how)
      326 
      327             if self.right_index:
  
  /path/to/env3.4/lib/python3.4/site-packages/pandas/tools/merge.py in _get_join_indexers(left_keys, right_keys, sort, how)
      514 
      515     # get left &amp; right join labels and num. of levels at each location
  --&gt; 516     llab, rlab, shape = map(list, zip( * map(fkeys, left_keys, right_keys)))
      517 
      518     # get flat i8 keys from label lists
  
  TypeError: type object argument after * must be a sequence, not map
  </code></pre>
  
  <p>My environment:</p>
  
  <ol>
  <li>python 3.4</li>
  <li>pandas 0.17.0</li>
  <li>numpy 1.10.1</li>
  </ol>
  
  <p>dtypes are different:</p>
  
  <pre><code>In [4]: df1.dtypes
  Out[4]: 
  ts    datetime64[ns]
  dtype: object
  
  In [5]: df3.dtypes
  Out[5]: 
  ts    datetime64[ns, UTC]
  dtype: object
  </code></pre>
  
  <p>The handling of date in pandas are a bit cryptic. You have to know :</p>
  
  <ul>
  <li>if you manipulate datetime.datetime, numpy.datetime64 or pandas.Timestamp</li>
  <li>with or without timezone</li>
  <li>second/millisecond/microsecond/nanosecond precision</li>
  </ul>
  
  <p>What am i missing here?</p>