Reverse method on event readers.

Related to #87.
>If you imagine that this logical assertion is being written by someone who has only recently learned about unit testing, how do you imagine the Assert phase would look like?

How would it look like? :)

-----

How about keeping the concrete event reader type as the return value of the `Reverse` method?

The proposed tests already use the type system, to check the type of instance:

```c#
LifoEvents<XmlAttributedTestEventX> actual = sut.Reverse(); // Instead of using *var*.
```

Client's can then choose to either use `Enumerable.Reverse` or the optimized `sut.Reverse`.