Define boxplot inside DataFrameGroupBy definition
instead of pinning it on right after the definition; move the import of `plotting._core.boxplot_frame_groupby` to the top of the module.

Start getting rid of the `exec(...)` statements.  In particular, the ones that define
properties.  Still need to figure out the ones defining methods.

 - [ ] closes #xxxx
 - [ ] tests added / passed
 - [x] passes ``git diff upstream/master -u -- "*.py" | flake8 --diff``
 - [ ] whatsnew entry
