Refactor of 1-d plotting widget to push common behavior into common.py

ready for merge.

sorry about the mega-commit at the end of the commit list.  Because that last step was a refactor, the commit had to be huge because refactoring breaks everything until it works again.

Also, I'm not sure how exactly I gained complete control over the common.py file, but sorry about that