AU/PM: Some refactoring

* Introduced a Provider base class, used for defining interface and
  shared logic (e.g. initialization semantics).

* Eliminated the Finalize() method in providers; release of resources is
  done in destructors (safer, less boilerplate).

* Revised CamelCase capitalization: PMFooTest -> PmFooTest, plus various
  cosmetics.

BUG=None
TEST=Builds and passes unit tests.

Change-Id: Ib959dfd2522e00928d735202b1448c9436cbb00b
Reviewed-on: https://chromium-review.googlesource.com/184352
Tested-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Alex Deymo <deymo@chromium.org>
Commit-Queue: Gilad Arnold <garnold@chromium.org>
diff --git a/policy_manager/all_variables.h b/policy_manager/all_variables.h
index be77698..fb3401e 100644
--- a/policy_manager/all_variables.h
+++ b/policy_manager/all_variables.h
@@ -7,11 +7,14 @@
 
 // List of globally available variables exposed by the different providers.
 //
-// Each state provider should implement a header file with the suffix "_vars.h"
-// with all the defined variable pointers, such as:
-//  Variable<MyType>* var_something;
-// This file includes all the different provider's header files with these
-// definitions.
+// Each state provider must implement a header file with the suffix "_vars.h",
+// which declares all the variables owned by this provider declared as extern
+// global pointers.
+//
+//   extern Variable<SomeType>* var_providername_variablename;
+//
+// This file is just an aggregate of all variable declarations
+// from the different providers.
 
 #include "policy_manager/random_vars.h"