refactored testing framework to allow each test to instantiate it's own controller

- allow each test to use its own controller simplifying unit testing
- #post, #get, #put, etc methods now support an optional body param to specify a body within the request