shill: PropertyAccessor: Create a const ReadOnly accessor

Provide a means to create an Accessor child class which can be
constructed with a const method.  This is useful for read-only
properties which won't modify the called object's state.  Make
use of this new feature by transforming the HelpRegisterConst*
in the Service object to take const methods and to register
read only accessors.  The bulk of this CL is the change to all
the subclasses to constify methods which were only non-const
due to this issue.

BUG=chromium:325603
TEST=Unit test

Change-Id: I79c6211e9e0907869c2885937dff58c1faf2ca4a
Reviewed-on: https://chromium-review.googlesource.com/178698
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/vpn_service.h b/vpn_service.h
index 9800ddc..e7a08de 100644
--- a/vpn_service.h
+++ b/vpn_service.h
@@ -58,7 +58,7 @@
   static const char kAutoConnNeverConnected[];
   static const char kAutoConnVPNAlreadyActive[];
 
-  virtual std::string GetDeviceRpcId(Error *error);
+  virtual std::string GetDeviceRpcId(Error *error) const;
 
   // Returns the Type name of the lowest connection (presumably the "physical"
   // connection) that this service depends on.