BUG: passing DataFrame to make_block silently raises
ATM in the `except NotImplementedError:` branch of `_cython_agg_blocks`, we take a difference approach to the operation.  if that approach succeeds, we end up passing a DataFrame to `make_block` on L189, which will raise `ValueError`.  As a result, we'll end up falling back to python-space for the entire operation, which presumably entails a performance hit.

This fixes the incorrect passing of DataFrame, but the fix is kind of kludgy.  Suggestions welcome on how to improve it.