be more idiomatic
Add docstring (and proper metadata) support to def-stream
add in some pre-conditions cause what the hell
Refactor argument parser from load-streams into separate func

Refactor argument parser from load-streams into separate function for
reusability and testability.

Also try and be more idiomatic and make `load-streams` more readable
through use of threading macros.
Refactor get-stream for clarity and testability

Refactor anonymous function in `get-stream` into its own private
function to improve readability and testability.
refactor list coercion into a separate func for reusability
Add lazy-seq regression unit test

We need to make sure that we do not pass a lazy-seq in to sdo. This will
cause some rules to not be loaded if a large enough number of rules are
specified to load.

This bug has occurred twice. Add a unit test to ensure it doesn't happen
a third.