refactor power restore controller

Currently PowerRestorePolicy handling code uses two undocumented
interfaces:
* `xyz.openbmc_project.Control.Power.RestoreDelay`
* `xyz.openbmc_project.Common.ACBoot`

Power Restore Delay seems to be logical part of
`xyz.openbmc_project.Control.Power.RestorePolicy` interface and has
been moved there.

ACBoot depends on some custom logic that can be found only in Intel-BMC
fork.

This commit reorganize PowerRestorePolicy-related code to be more clear
and flexible, fixes interface for RestoreDelay. Use of ACBoot feature is
now optional and can be compile-time enabled.

Tested: Model power loss event with Off, On and Restore policy, verify,
        that power restored as expected.
	Test On policy with Delay set to 300000000 - ensure, power on
	delayed by 5 minutes.
	Test with ACBoot interface emulated.
Signed-off-by: Andrei Kartashev <a.kartashev@yadro.com>
Change-Id: Id8b42d2085f44418e02a7f52836cc1a6f55f50db
diff --git a/meson_options.txt b/meson_options.txt
index d4c0309..25639c5 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,4 +1,6 @@
 option('chassis-system-reset', type: 'feature', value : 'disabled',
        description: 'Enable chassis system power reset to allow removing power and restoring back')
 option('use-plt-rst', type: 'feature', value : 'disabled',
-       description: 'Use the PLT_RST eSPI signal to detect warm reset instead of POST Complete')
\ No newline at end of file
+       description: 'Use the PLT_RST eSPI signal to detect warm reset instead of POST Complete')
+option('use-acboot', type: 'feature', value : 'disabled',
+       description: 'Use hardware Reset Reason to control Power Restore. Note: this only works with Intel-BMC')