Added ujson and pyqt checks

First attempt to make qt_compat a bit more sane. Also added ujson, which reverts to json if it can't find ujson