PyQT5 Support

Supersedes (and rewrites for cleaner history) #410.

Includes tests, limited support for running tests on travis, and doc changes. Also includes one bug fix that the tests uncovered.