Add session and application into Terminal namespace

Closes #270
Added Glue banner to terminal
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
Merge pull request #275 from ChrisBeaumont/terminal

New terminal variables and banner message
Fix failing test
MPL v1.1 compatibility
Merge pull request #274 from ChrisBeaumont/cache

Cache expensive MPL draws
Refactor scatter widget method
Merge pull request #276 from ChrisBeaumont/scatter-cleanup

Refactor scatter widget method
Decorator to defer and consolidate multiple canvas draws inside a method

This provides finer-grain control over the previous attempt to
delay and throttle draw calls. That led to noticeable stalls
Merge pull request #278 from ChrisBeaumont/deferred-draw

Decorator to defer and consolidate multiple canvas draws inside a method
Use nonpartial for Action.triggered.connect, to quietly absorb trigger arguments

This fixes a compatibility issue between PySide and PyQt4. In the former,
the Action.triggered boolean argument was silently being ignored. In
PyQt4, however, it was triggering errors about functions being
given too many arguments
Redirect d3po.org urls to new location
Merge pull request #280 from ChrisBeaumont/choose_export_session

Handle PyQt4/PySide differences in action.triggered signature
Refactor out callbacks into echo module
WIP Line profile viewer
Profile object picking
Spectrum mouse mode