Fixed BeforeFirst

BeforeFirst was behaving like BeforeEach
Fixed AfterLast to only work when there are items

Also added Before, After and AfterCounted to be executed regardless of
the presence of items.