Framework for self-updating PyQt app