Reimplement the 'SkipLast' operator

This PR did the following work:
* Reimplemented the `SkipLast` operator to two different classes: `OperatorSkipLast` and `OperatorSkipLastWithTimed`.
* Fixed a bug in `OperatorSkipLastWithTimed` that when all elements are valid, `onCompleted` will not be called. The unit test is `testSkipLastTimedWhenAllElementsAreValid`.