TST: Add Panel tests to test_expressions
ENH: Add cross-compatible bind_method for classes to core/common
CLN: Move arithmetic methods into core/generic.py

Adds two classmethods to `NDFrame` that allow
easy, correct binding of all the arithmetic operators.

Only add if method not already in class' __dict__

Method binding is Py2/3 compatible

Handles both flex and special (`__*__`) methods

Frame: Refactor frame flex methods to generic

Series: refactor rich comparisons to generic

Panel: Refactor panel arithmetic methods into generic

Note that SparsePanel explicitly opts out
because it works differently and falls back
to using underlying operations + _fill_zeros.

Add subtract and multiply methods to match Panel

Add note with question on r* flex methods

Add call signature for flex_*_method to docstring

Change flexmethod to be accelerated

Add basic speedups to panel

Simplify naming and use special method check to handle the different
names (this does end up causing certain more descriptive names (i.e.,
"true division") to be lost, but overall I think it's a big improvement
and makes everything much more simple).

Also sets `default_axis` to be exactly the same as how it was before the
refactoring. (Frame flex methods use the default of 'columns', special
arithmetic methods use `default_axis=None` and all comp methods use
default axis of 'columns')