BUG: (GH4145/4146) Fixed bugs in multi-index selection with column multi index duplicates
closes #4145, #4146

```
In [1]: data = """h1 main  h3 sub  h5
   ...: 0  a    A   1  A1   1
   ...: 1  b    B   2  B1   2
   ...: 2  c    B   3  A1   3
   ...: 3  d    A   4  B2   4
   ...: 4  e    A   5  B2   5
   ...: 5  f    B   6  A2   6"""

In [2]: df = pd.read_csv(StringIO(data),sep='\s+',index_col=0)

In [3]: df2 = df.set_index(['main', 'sub']).T.sort_index(1)

In [4]: df2.loc[:,('A','A1')]
Out[4]: 
main  A
sub  A1
h1    a
h3    1
h5    1

In [5]: df2[('A','A1')]
Out[5]: 
main  A
sub  A1
h1    a
h3    1
h5    1

In [6]: df2['A']['A1']
Out[6]: 
   A1
h1  a
h3  1
h5  1
```

This should NOT work, as this is tryingo select 2 different columns ('A' is ok, but 'A1' fails which is correct)

```
In [7]: df2[['A','A1']]
KeyError: "['A1'] not in index"
```

This is ok though

```
In [8]: df2[[('A','A1')]]
Out[8]: 
main  A
sub  A1
h1    a
h3    1
h5    1
```

@hayd cc @jtratner

tell me if you think this covers it....
 Looks good to me. Is df2['A']['B2'] behaviour already tested elsewhere?
 here are the cases

2 level index
unique - unique
unique - non_unique

select top level
select top level and 2nd level unique
select top level and 2nd level non_unique

maybe should put a comprehensive test
pretty sure all tested - maybe move all to a single test method?
