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
- Added a function, `clear-globals!` that sets each global variable to its default value

This might be easiest to review commit-by-commit. Take your time!