Recursively traverse data structures for 'extract' and 'provide?'.

This allows something like the following to work in your 'config.edn' file:

    {foo.bar/aws-creds {:access-key #config/env "AWS_ACCESS_KEY_ID"
                        :secret-key #config/env "AWS_SECRET_ACCESS_KEY"}}

Previously this would have (technically) worked, but the user would have to know
that some values needed to have 'extract' called on them, which was not
intentional since the advantage of the #config/* reader tags is that they can
separate the config value from where that config value is found.

The traversal implementation is simple and not necessarily correct for arbitrary
Java objects in Clojure, but it works because we're dealing with EDN.
Use data readers when parsing EDN for #config/edn tag.

If we want 'extract' and 'provided?' to recursively apply to data
structures (and we do), then we need the reader tags to recursively apply as
well.
Add recursive extraction test for defconfig macro.
Recursively traverse #config/edn values for 'extract' and 'provide?'.
Update README about recursive 'extract' and 'provides?' implementation.
Merge pull request #20 from outpace/recursively-extract

Recursively traverse data structures and #config/edn values for 'extract' and 'provide?'