Update config.base, enable interpolation during merge operations
Update reclass.storage to pass the backend a config

This commit hits up a number of places in reclass: the Core, storage
loading, and the existing storage backends. Here we see the following:

 * Reclass Core() now tries to retrieve a config key with the same name
   as the storage_type defined in the Reclass config. This allows us to
   have a 'yaml_fs' key to define config for the backend, in the Reclass
   config.
 * __init__() in NodeStorageBase accepts a ``conf`` and stores that in
   the storage class as ``_conf``.
 * The MemcacheProxy and YamlFS backends have been updated to properly
   pass along and use the config received from the storage loader.
 * The YamlFS backend has the nodes_uri and classes_uri keys updated to
   use the embedded config. Thus, we define nodes_uri and classes_uri
   through config (the options are now meaningless).

We have interpolation available in the Reclass config, so we can do
things like the following in our configs:

  inventory_base_uri: /etc/reclass
  storage_type: yaml_fs

  yaml_fs:
    nodes_uri: ${inventory_base_uri}/nodes
    classes_uri: ${inventory_base_uri}/manifests

This commit has been tested with the following config, not much more:

  storage_type: yaml_fs
  inventory_base_uri: /etc/reclass
  class_mappings: None
  yaml_fs:
    nodes_uri: ${inventory_base_uri}/nodes
    classes_uri: ${inventory_base_uri}/manifests

Given the way the storage backend is using the config, and the way that
Reclass is handling options/config/etc, the --classes-uri and
--nodes-uri command line options do not take effect. Furthermore, a
config that does not have the yaml_fs key as above will fail with
cryptic exceptions. We'll clean this up in time.