Support type validation against multiple types

Fixes #3
Support setting default parameters in the DSL
Update the readme with more comprehensive examples