Fix beforeEach execution order

Fixes #196.

Also, this modifies the functional tests for `beforeEach` and `afterEach`--previous tests tested the total number of times closures were called, but not the order in which they were called. This pull request introduces tests for the order as well.

This is brittle in that these tests may break when test order shuffling is introduced (see #152)--but when that time comes, shuffling should simply be disabled when running these order-based tests.