adds suite.use_framework, which provides a cleaner interface for setting test framework.

- this is to facilitate multiple versions of the test frameworks
- intended to simplify updating teaspoon, while keeping your tests relatively unscathed.
- moves framework dependencies out of the teaspoon files, and provides an error when they aren't loaded.
- also adds the concept of a TeaspoonError, which will immediately fail the run.
fixes some flapping specs.