ENH/CLN: add BoxPlot class inheriting MPLPlot

Like #7809, added ``DataFrame.plot(kind='box')`` to plot boxplot under the common plotting method.

**NOTE:** ``DataFrame.boxplot`` remains untouched (few lines are modified to share some definitions).
**NOTE:** This is based on #7736.

```
import pandas as pd
import numpy as np
pd.options.display.mpl_style = 'default'
df = pd.DataFrame(np.random.randn(100, 5))
ax = df.plot(kind='box')
```
![figure_1](https://cloud.githubusercontent.com/assets/1696302/3890938/2cc60f44-2225-11e4-8d79-4633c5ac7b40.png)

One enhancement is easier colorization by passing ``color`` keyword. You can pass ``dict`` with keys are ``boxes``, ``whiskers``, ``medians`` and ``caps``. If some keys are missing in the ``dict``, default colors are used for the corresponding artists. Also, boxplot has ``sym`` keyword to specify fliers style (This is mpl keyword and simply forward to mpl).
```
color = dict(boxes='DarkGreen', whiskers='DarkOrange',
             medians='DarkBlue', caps='Gray')
ax = df.plot(kind='box', color=color)
```
![figure_2](https://cloud.githubusercontent.com/assets/1696302/3890940/310b00e6-2225-11e4-8120-4c7fd7ffa697.png)

Should we validate the keys passed in `colors`, and raise if the dictionary contains something other than the expected ones? Right now `df.plot(kind='boxplot', colors={'boxse': 'r')` "works", but you don't get what you expect.