simplify request handling in Power Settings widget

This brings it closer in line with the other widgets, and simplifies
a bunch of things by using .button('loading').

The key point is that we can't just listen for the System 'sync' and
'error' events since they are triggered by *any* requests relating to
the System model, including requests made by other widgets.

Bug: 1161373
Change-Id: I4bf5875b7f048296b2d2e2e79120c364152f29f3