BUG: Better axis label handling for partial layout
Closes #5897.

Handle `ticklabels` and `labels` based on below rules. Currently `labels` are always displayed even if `ticklabels` are hidden and causes confusion.
- If `sharex` is `True`, display only most bottom `xticklabels` on each columns. (Because #7035 hides the bottom-right axes). Hide `xlabel` as the same manner as `xticklabels`
- If `sharey` is True, display most left `yticklabels` (no change). Hide `ylabel` as the same manner as `yticklabels` (changed)

```
import pandas as pd
from numpy.random import randn
import matplotlib.pyplot as plt

d = pd.DataFrame({'one':randn(5), 'two':randn(5), 'three':randn(5), 'label':['label'] * 5},
        columns = ['one','two','three', 'label'])
bp= d.boxplot(by='label', rot=45)
```

![figure_1](https://cloud.githubusercontent.com/assets/1696302/3074667/70d267ea-e34c-11e3-8996-24db3e31ed67.png)

@cpcloud 
 @cpcloud ?
 @cpcloud ? @sinhrks can you rebase
 thanks!
