Add behaviors

@tlunter This one's pretty big, sorry :(.
- Separated each file into its own package
- Changed all function/macro comments to docstrings
- Removed `env->cl`
- Added `behavior`, which allows the definition of generic expectations
- Added a context-child-syntax, `it-behaves-like`, which allows a `behavior` to be used in a `context` or other `behavior`
- DRY'd up all of the `validate-*-syntax` functions

This might be easiest to review commit-by-commit. Take your time!