CLN: refactor core/index and tseries/index,period to have their format, to_native_types methods consistent
- ENH: add support for Period formatting (as a native type), add `equals` comparison method
         `__eq__` et al added by others
- TST: add period support to makeCustomDataFrame for testing purposes

@changhiskhan @y-p any problem with this?
 `Index` `format_native_types` does nan handling but corresponding `Multindex` code doesn't,
is that intentional?
 not on purpose 
I am not sure that we allow nan in a mi though? (it messes with the sortedness)
I am sure we can construct one though
 yeah, I've never seen one, but..

``` python
In [15]: df=mkdf(10,3,r_idx_nlevels=2)
    ...: df.index.values[0]= (np.nan, 'R_l1_g0')
    ...: pd.DataFrame(df.values,index=df.index.values)
    ...: 
Out[15]: 
                       0     1     2
(nan, R_l1_g0)      R0C0  R0C1  R0C2
(R_l0_g1, R_l1_g1)  R1C0  R1C1  R1C2
(R_l0_g2, R_l1_g2)  R2C0  R2C1  R2C2
(R_l0_g3, R_l1_g3)  R3C0  R3C1  R3C2
(R_l0_g4, R_l1_g4)  R4C0  R4C1  R4C2
(R_l0_g5, R_l1_g5)  R5C0  R5C1  R5C2
(R_l0_g6, R_l1_g6)  R6C0  R6C1  R6C2
(R_l0_g7, R_l1_g7)  R7C0  R7C1  R7C2
(R_l0_g8, R_l1_g8)  R8C0  R8C1  R8C2
(R_l0_g9, R_l1_g9)  R9C0  R9C1  R9C2


```
 that is printing wrong then
should be NaN

I'll put a fix in - still should be illegal
 perhaps less synthetic:

``` python
In [25]: df=mkdf(10,3,data_gen_f=lambda r,c: np.nan if randint(0,2) > 0 else randint(0,100))
    ...: df
Out[25]: 
C0       C_l0_g0  C_l0_g1  C_l0_g2
R0                                
R_l0_g0      NaN      NaN       68
R_l0_g1       91       74      NaN
R_l0_g2        6      NaN       70
R_l0_g3       96      NaN      NaN
R_l0_g4      NaN      NaN       37
R_l0_g5      NaN       66       12
R_l0_g6      NaN      NaN      NaN
R_l0_g7      NaN       14       26
R_l0_g8      NaN      NaN      NaN
R_l0_g9      NaN       91      NaN

In [26]: df.set_index([df.columns[0],df.columns[1]])
Out[26]: 
                 C_l0_g2
C_l0_g0 C_l0_g1         
Na      Na            68
91      74           NaN
6       Na            70
96      Na           NaN
Na      Na            37
        66            12
        Na           NaN
        14            26
        Na           NaN
        91           NaN
```
