Assert the token's block is not nil and check it before execution

Further enhancement on #804.
Since token may be removed(e.g. its block becomes `nil`) while `[_notificationHandlers copy]` being enumerated, we need to check the token's block before execution.