PolicyManager: Move Init() from the Provider class to the classes that require it.

Not all the providers require an Init() method, and not all of them
can fail. For example, none of the Fake version of the providers
require an special initialization on a separated method.

This patch moves those Init() methods from the base Provider class
to the classes that require it. When you create a class Foo instance,
it is your responsibility to call Foo::Init(), and since you know the
type of the instance you are creating, you know what to expect from
its Init() method. This patch simplifies the FakeState class while
removing the Init() methods from those classes.

Init() methods are simply a way to have a constructor that can fail
without using exceptions and it is the style's guide recommended way
to have the same functionality.

BUG=chromium:358269
TEST=Build and unit test still passing.

Change-Id: Ida7d2cc1a494998144ca5c488513c85223def626
Reviewed-on: https://chromium-review.googlesource.com/196971
Tested-by: Alex Deymo <deymo@chromium.org>
Reviewed-by: Gilad Arnold <garnold@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
diff --git a/policy_manager/real_time_provider.cc b/policy_manager/real_time_provider.cc
index b2ddd2f..1693c73 100644
--- a/policy_manager/real_time_provider.cc
+++ b/policy_manager/real_time_provider.cc
@@ -60,7 +60,7 @@
   DISALLOW_COPY_AND_ASSIGN(CurrHourVariable);
 };
 
-bool RealTimeProvider::DoInit() {
+bool RealTimeProvider::Init() {
   var_curr_date_.reset(new CurrDateVariable("curr_date", clock_));
   var_curr_hour_.reset(new CurrHourVariable("curr_hour", clock_));
   return true;