[#2473] Add Iterable support in assertIsEmpty/assertIsNotEmpty.

Problem
-----

No support for `Iterable` and `Iterators` in our assert methods.

Changes
----

Enhanced both `assertIsEmpty` and `assertIsNotEmpty` to support iterable arguments.

How to test
----

reviewers @adiroiban 

Please check that the code changes make sense. Thanks.
hm... a lot of duplication,.. maybe we can something like

```
try:
   self.assertIsEmpty(target)
except AssertionError:
   pass
else:
   raise AssertionError(Not empty)

```