refactor to userapp

 * try to keep prop readout as close as possible.
 * obviously, we need root as we can't write to cache or trigger a
reboot as a userapp without it.
 * add launcher icon