add the functions for multi-stage packages to updater

In order to support multi-stage recovery packages, we add the
set_stage() and get_stage() functions, which store a short string
somewhere it can be accessed across invocations of recovery.  We also
add reboot_now() which updater can invoke to immediately reboot the
device, without doing normal recovery cleanup.  (It can also choose
whether to boot off the boot or recovery partition.)

If the stage string is of the form "#/#", recovery's UI will be
augmented with a simple indicator of what stage you're in, so it
doesn't look like a reboot loop.

cherry-pick AOSP commit c87bab101893e8322b49d7c8600e3367b20ab50a

Conflicts:
	recovery.cpp
	screen_ui.cpp
	screen_ui.h
	updater/install.c

Change-Id: I3fd355adacd4ed00c23713d6a4fdafd91d7a28a4