Stream metadata support

Support metadata on streams. Use the metadata :wildcard-exclude to
exclude a stream from a wildcard load.
Warn when defining a stream overrides a pre-existing stream
Protect against cyclical dependencies

Use Stuart Sierra's dependency library to detect and protect against
cyclical dependencies.