DOC: fix bpoly docstrings
API: remove axis & direction arguments of bpoly.from_derivatives

(They were not implemented anyway.) The idea is to keep the basic
object simple, and delegate complications to subclasses or wrappers.
MAINT: interpolate: move pchip to _monotone.py
MAINT: interpolate: reimplement pchip to use BPoly

The algorithm itself is intact.
STY: remove code duplication, rename pchip.p to pchip.bpoly
API: make pchip.derivative match PPoly.derivative

Previously, pchip.derivative used to return a value of f'(x)
at a fixed `x`. Now this can be achieved with pchip.__call__,
and pchip.derivative() returns a callable object, representing
the derivative. See gh-3267 for discussion.
ENH: add roots() method to the pchip interpolator.
ENH: bpoly: implement in-place derivatives
DEP: Deprecate PiecewisePolynomial
MAINT: underscore the _bpoly attribute of pchip
TST: add tests for PCHIP

Make sure the interpolator (i) preserves monotonicity, and
(ii) does not overshoot
Merge pull request #3267 from ev-br/pchip_

ENH: interpolate: reimplement pchip interpolator

Convert pchip interpolator into a wrapper around BPoly. The interpolation
algorithm is the same as previously, but evaluation is done via the new
piecewise polynomial functionality.
Merge pull request #3320 from ev-br/poly_

ENH: interpolate: improve BPoly API and functionality

- remove unneeded attributes (axis and direction).
- implement in-place evaluation of derivatives.
- add tests for complex coefficients.
- deprecate PiecewisePolynomial