Add support for defered configuration values.

As seen in the included tests, a new feature is added to allow you
declare a configuration value as a special kind of function in .js
files.

This is useful to create default configuration values based on other
configuration values when other further configuration files may override
the values being referenced.

You can think of this as allowing you declare "templates" which contain
variables referencing other config values in the
configuration file, which are then "rendered" with the correct values
once all the config files have been loaded in merged.

One test shows that the addition is backwards compatible with config
files that have been using functions as values. Only functions which
are instance of the newly provided DeferredConfig class are handled
specially.

For example use see:

        test/3-deferred-configs.js
        test/config/default-defer.js
        test/config/local-defer.js
Merge pull request #164 from markstos/deferConfig

Add support for defered configuration values.