shill: Infrastucture for encrypting/decrypting/scrambling store values.

This adds a CryptoProvider that registers and provides access to different
prioritized crypto modules (currently DES-CBC and ROT47). Use the provider in
KeyFileStore to provide an API for getting and setting crypted string values.

BUG=chromium-os:16963
TEST=unit tests

Change-Id: I492516890eb3f527758d354cd8890088cb99dea4
Reviewed-on: http://gerrit.chromium.org/gerrit/3395
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
diff --git a/crypto_rot47.cc b/crypto_rot47.cc
index cf70fa3..79c427d 100644
--- a/crypto_rot47.cc
+++ b/crypto_rot47.cc
@@ -10,6 +10,8 @@
 
 const char CryptoROT47::kID[] = "rot47";
 
+CryptoROT47::CryptoROT47() {}
+
 string CryptoROT47::GetID() {
   return kID;
 }