BUG: Fix for DateOffset's reprs. (GH4638)
Merge pull request #4868 from cancan101/offset_repr

BUG: Fix for DateOffset's reprs. (GH4638)
ENH Change ExcelFile and read_excel to accept a workbook for the io
(formerly path_or_buf) argument; this requires engine to be set.
(GH4961)
Merge pull request #4962 from cancan101/excel_take_workbook

ENH Change ExcelFile to accept a workbook for the path_or_buf argument.
CLN: Refactor arithmetic operations to core/ops

* Abstract all arithmetic methods into core/ops
* Normalize arithmetic methods signature (see
  `ops.add_special_arithmetic_methods` and `ops.add_flex_arithmetic_methods`
  for signature).
* Opt-in more arithmetic operations with numexpr (except for
  SparsePanel, which has to opt-out because it doesn't respond to
  `shape`).
* BUG: Fix ``_fill_zeros`` call to work even if TypeError (previously
  was inconsistent).
* Add bind method to core/common
* Add full range of flex arithmetic methods to all NDFrame/ndarray
  PandasObjects (except for SparsePanel pow and mod, which only work for
  scalars)
* CLN: Remove some calls to np.putmask in favor of masker
* ENH: make series datetime ops compatible with add, radd, sub, rsub, etc
CLN: Add testing util in core/expressions

Adds a set of testing methods to check that numexpr was actually used
successfully.

Also changes the if hasattr idiom --> getattr.
TST: Flesh out test cases to include all arithmetic ops

* better panel arith test
* TST: refactor test case in series
DOC: Document entire range of arithmetic methods in api.rst

doc fixup
CLN: Refactor core/ops + add Panel to it
CLN: Disable numexpr for sparse objects
add a test for commutative addition
Fixups to panel imports
More panel fixups
Copy over the old _arith_method for FRAME to get compatibility
Swap out the other arithmetic methods for frame
Revert more changes in core/ops
Disable r* comparisons for now because they cause test failures
Move out com fill zeros (I guess evaluate TypeErrors more frequently
Revert panel changes too :(
Specifically allow radd in TimeOps for Series