shill: Implement write-only properties

Certain properties (e.g. WIFI Passphrase) are write only and must
not be returned when Service.GetProperties() is called over D-Bus.

This CL implements WriteOnlyProperties, a write-only analog of the
read-only ConstProperties.

Also add a ReadablePropertyConstIterator which only returns the
readable properties. Switch over DBus adaptor and PropertyStore
to use that.

BUG=chromium-os:21196
TEST=Added 2 new unittests.

Change-Id: I52815cc395650e0b49e1acac8d4954deeebcee5d
Reviewed-on: https://gerrit.chromium.org/gerrit/11402
Commit-Ready: Gaurav Shah <gauravsh@chromium.org>
Reviewed-by: Gaurav Shah <gauravsh@chromium.org>
Tested-by: Gaurav Shah <gauravsh@chromium.org>
diff --git a/property_store_unittest.h b/property_store_unittest.h
index 8b800b7..9679aab 100644
--- a/property_store_unittest.h
+++ b/property_store_unittest.h
@@ -31,7 +31,7 @@
   // can be ordering issues if your constructors have side effects.
   // These constructors don't, and declaring these as static lets me
   // autogenerate a bunch of unit test code that I would otherwise need to
-  // copypasta.  So I think it's safe and worth it.
+  // copypaste.  So I think it's safe and worth it.
   static const ::DBus::Variant kBoolV;
   static const ::DBus::Variant kByteV;
   static const ::DBus::Variant kInt16V;