Consistent setup and teardown behavior

This change makes Whiskey work more like other test runners. Instead of executing `setUp` and `tearDown` once per test file it now executes those functions before and after running every test in a test file.

**Note: This change is breaking and backward incompatible. If you want to preserve old behavior, you need to migrate to `initialize` and `finalize` functions which behave the same as way `setUp` and `tearDown` did in older versions.**