HDFStore.append() throws ValueError for DataFrame created with combine_first()
Expected: The df is appended w/o throwing an exception

The df created using combine_first() has same axis as the df originally appended.

This appears to be IFF the index is updated.

Steps:
1. Create df.
2. Append it to hdf store (newly created).
3. df2 = df.copy() + alter index
4. Append df2 to hdf store.

The following IPython output demonstrates the issue:

``` Python

In [2]: import os, sys
   ...: from datetime import datetime
   ...: import numpy as np # will use a lot in examples
   ...: randn = np.random.randn
   ...: from pandas import DataFrame, Series,date_range
   ...: from pandas.util.print_versions import show_versions
   ...: import pandas as pd
   ...: 
   ...: 
   ...: print('versions:')
   ...: show_versions()
   ...: 
   ...: def append_test(fname, key, df1, df2):
   ...:     try: os.unlink(fname)
   ...:     except: pass
   ...: 
   ...:     store = pd.HDFStore(fname)
   ...:     store.append(key, df1, format='table')
   ...:     store.close()
   ...: 
   ...:     df3 = df1.combine_first(df2)
   ...:     print('index type:\ndf1: %r\ndf2: %r\ndf3: %r' % (type(df1.index[0]), type(df2.index[0]), type(df3.index[0])))
   ...:     print('df1: %r\ndf2: %r\ndf3: %r' % (df1, df2, df3))
   ...: 
   ...:     store = pd.HDFStore(fname)
   ...:     store.append(key, df3, format='table')
   ...:     store.close()
   ...: 
   ...: fname = 'test_table.h5'
   ...: key = 'df'
   ...: sz=5
versions:

INSTALLED VERSIONS
------------------
Python: 2.7.4.final.0
OS: Linux
Release: 3.8.0-35-generic
Processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8

pandas: 0.13.0
Cython: 0.19.2
Numpy: 1.8.0
Scipy: 0.11.0
statsmodels: 0.5.0
    patsy: 0.2.1
scikits.timeseries: Not installed
dateutil: 2.2
pytz: 2013.9
bottleneck: 0.8.0
PyTables: 3.0.0
    numexpr: 2.2.2
matplotlib: 1.3.1
openpyxl: 1.7.0
xlrd: 0.9.2
xlwt: 0.7.5
xlsxwriter: Not installed
sqlalchemy: 0.8.4
lxml: 3.1.0
bs4: 4.3.2
html5lib: Not installed
bigquery: Not installed
apiclient: Not installed


In [3]: # works (index not touched)
   ...: df1 = DataFrame(dict(A=list(range(sz)), B=list(range(sz))))
   ...: df2 = df1 + 1
   ...: append_test(fname, key, df1, df2)
index type:
df1: <type 'numpy.int64'>
df2: <type 'numpy.int64'>
df3: <type 'numpy.int64'>
df1:    A  B
0  0  0
1  1  1
2  2  2
3  3  3
4  4  4

[5 rows x 2 columns]
df2:    A  B
0  1  1
1  2  2
2  3  3
3  4  4
4  5  5

[5 rows x 2 columns]
df3:    A  B
0  0  0
1  1  1
2  2  2
3  3  3
4  4  4

[5 rows x 2 columns]

In [4]: # errors (increment df2's index)
   ...: df1 = DataFrame(dict(A=list(range(sz)), B=list(range(sz))))
   ...: df2 = df1.copy()
   ...: df2.index = df2.index + 1
   ...: append_test(fname, key, df1, df2)
index type:
df1: <type 'numpy.int64'>
df2: <type 'numpy.int64'>
df3: <type 'numpy.int64'>
df1:    A  B
0  0  0
1  1  1
2  2  2
3  3  3
4  4  4

[5 rows x 2 columns]
df2:    A  B
1  0  0
2  1  1
3  2  2
4  3  3
5  4  4

[5 rows x 2 columns]
df3:    A  B
0  0  0
1  1  1
2  2  2
3  3  3
4  4  4
5  4  4

[6 rows x 2 columns]
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-4-07d7d3b66f85> in <module>()
      3 df2 = df1.copy()
      4 df2.index = df2.index + 1
----> 5 append_test(fname, key, df1, df2)

<ipython-input-2-35a49d394732> in append_test(fname, key, df1, df2)
     24 
     25     store = pd.HDFStore(fname)
---> 26     store.append(key, df3, format='table')
     27     store.close()
     28 

/usr/local/lib/python2.7/dist-packages/pandas/io/pytables.pyc in append(self, key, value, format, append, columns, dropna, **kwargs)
    885         kwargs = self._validate_format(format, kwargs)
    886         self._write_to_group(key, value, append=append, dropna=dropna,
--> 887                              **kwargs)
    888 
    889     def append_to_multiple(self, d, value, selector, data_columns=None,

/usr/local/lib/python2.7/dist-packages/pandas/io/pytables.pyc in _write_to_group(self, key, value, format, index, append, complib, encoding, **kwargs)
   1244 
   1245         # write the object
-> 1246         s.write(obj=value, append=append, complib=complib, **kwargs)
   1247 
   1248         if s.is_table and index:

/usr/local/lib/python2.7/dist-packages/pandas/io/pytables.pyc in write(self, obj, axes, append, complib, complevel, fletcher32, min_itemsize, chunksize, expectedrows, dropna, **kwargs)
   3537         self.create_axes(axes=axes, obj=obj, validate=append,
   3538                          min_itemsize=min_itemsize,
-> 3539                          **kwargs)
   3540 
   3541         if not self.is_exists:

/usr/local/lib/python2.7/dist-packages/pandas/io/pytables.pyc in create_axes(self, axes, obj, validate, nan_rep, data_columns, min_itemsize, **kwargs)
   3258         # validate the axes if we have an existing table
   3259         if validate:
-> 3260             self.validate(existing_table)
   3261 
   3262     def process_axes(self, obj, columns=None):

/usr/local/lib/python2.7/dist-packages/pandas/io/pytables.pyc in validate(self, other)
   2759                         raise ValueError(
   2760                             "invalid combinate of [%s] on appending data [%s] "
-> 2761                             "vs current table [%s]" % (c, sax, oax))
   2762 
   2763                 # should never get here

ValueError: invalid combinate of [values_axes] on appending data [name->values_block_0,cname->values_block_0,dtype->float64,shape->(2, 6)] vs current table [name->values_block_0,cname->values_block_0,dtype->int64,shape->None]

In [5]: 
```
