Add axes caching to scatter plots.

Closes #262
Cleanup matplotlib widget. Add a cooldown between canvas.draw operations

This introduces a small delay in draw calls, but prevents quick
updates from causing multiple intermediate draw requests
PEP8
Fix failing test
MPL v1.1 compatibility
Merge pull request #274 from ChrisBeaumont/cache

Cache expensive MPL draws