Merge pan/zoom etc with refactored driver structure

Known bug in this: Pausing/unpausing doesn't currently work.  Pushing anyway since that may need some thought between the different driver levels.