PERF: Make matplotlib import lazy
Cuts import time by about 23%, from 393ms to 303ms (note these measurements are pretty noisy).  The percentage edges up to 26% if we ignore get_version, since that is negligible in a release.

Downside: we lose some docstrings on plotting methods.  Will need to decide if it is worth a refactor to keep them in place.