Inconsistent behavior of hierarchical indexes when indexes are of different data types
``` python
import pandas as pd, pylab

#int index
col = pd.MultiIndex.from_tuples([('c1',0),('c1',1),('c2',0)],names=['f','s'])
dat = pylab.randn(2,len(col))
df1 = pd.DataFrame(dat, columns=col)

#Text index
col = pd.MultiIndex.from_tuples([('c3','x'),('c3','y')])
dat = pylab.randn(2,len(col))
df2 = pd.DataFrame(dat, columns=col)

#This does not merge column indexes
df_a = pd.concat([df1,df2])
#But this does
df_b = pd.concat([df1,df2], axis=1)

col = pd.MultiIndex.from_tuples([('c1','0'),('c1','1'),('c2','0')],names=['f','s'])
dat = pylab.randn(2,len(col))
df4 = pd.DataFrame(dat, columns=col)
df_d = pd.concat([df4,df2], axis=0)
```

```
In [31]: df_a
Out[31]: 
   c1      c2        c3          
    0   1   0         x         y
0 NaN NaN NaN       NaN       NaN
1 NaN NaN NaN       NaN       NaN
0 NaN NaN NaN -0.694275 -1.357936
1 NaN NaN NaN -1.450523 -1.453957
```

This is unexpected behavior, especially since axis=1 does not care

```
In [32]: df_b
Out[32]: 
f        c1                  c2        c3          
s         0         1         0         x         y
0  0.381601 -0.730360  0.157936 -0.694275 -1.357936
1  0.344333 -1.308118  1.503335 -1.450523 -1.453957
```

This now works, because the sub-index is same type (str)

```
In [33]: df_d
Out[33]: 
         c1                  c2        c3          
          0         1         0         x         y
0  0.162019 -0.325463 -0.200149       NaN       NaN
1 -0.142477 -0.089191 -0.439161       NaN       NaN
0       NaN       NaN       NaN -0.694275 -1.357936
1       NaN       NaN       NaN -1.450523 -1.453957
```
