WIP

* remove ad-hoc code
* create UpdateChecker model
* ensure all branches are possible
* don’t use rewire
should `semver` also be a bundled dep?