Consistency: isEmpty and isNullOrEmpty should return the assertion object.

* Right now there is an inconsistency between all other "asserts" and
  `isEmpty` and `isNullOrEmpty`.
* I like the assertions to be in front of a potential description so I like to write:
```
  assertThat(fellowshipOfTheRing)
    .isNotEmpty()
    .contains(bilbo)
    .as("Expected Bilbo to be part of the fellowship!");
```
* The same style does not work for the reverse:
```
  assertThat(hobbitsToBeRescued)
    .isEmpty() // returns void in 1.7.0!
    .as("Expected that no hobbits are in danger!"); // impossible right now.
```
* This PR just returns `myself` in consistency with all other methods of this group, so
  I am able to append the `describedAs` or `as` methods at the end of the invocation.
* Unfortunately everyone who has implemented `EnumerableAssert` directly would have to
  update her code, so maybe this should be part of version 2.0.

This is the second take, first was #274.