Bug 819335: add self-test, and require it to get out of failed or new states; r=mcote

This also refactors the lifeguard UI's "Please.." toolbar so that the
image and bootconfig are only prompted for when necessary, and with a
placeholder showing the keys required for bootconfig.

To accomplish all of this, "hidden" images are introduced for use with
these special-purpose PXE boots.  They're not quite "images" in the
sense that they don't flash the sdcard, but they can end up writing
something to the card, and the implementation works out well this way.
There is the added advantage that a device's last_image_id is set to
'self-test' or 'maintenance', so mozpool won't be fooled into thinking
that Android or B2G is still installed.