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/generic_variables_unittest.cc b/policy_manager/generic_variables_unittest.cc
index 6758e23..14b40d3 100644
--- a/policy_manager/generic_variables_unittest.cc
+++ b/policy_manager/generic_variables_unittest.cc
@@ -10,7 +10,7 @@
 
 namespace chromeos_policy_manager {
 
-TEST(PMCopyVariableTest, SimpleTest) {
+TEST(PmCopyVariableTest, SimpleTest) {
   int obj_int = 5;
 
   CopyVariable<int> var(obj_int);
@@ -45,7 +45,7 @@
   bool copied_;
 };
 
-TEST(PMCopyVariableTest, UseCopyConstructorTest) {
+TEST(PmCopyVariableTest, UseCopyConstructorTest) {
   ConstructorTestClass obj;
   ASSERT_FALSE(obj.copied_);