tests: Add assertNotRaises assertion

Typically we like failing assertions to cause a test failure, and any
other error to cause a test error. However, in some case we like any
error to be considered as test failure.  For example, if I'm testing
code writing a file, and the test is verifying the code by parsing the
file, we can have many possible errors that mean test failure - missing
file, parsing error, and sometimes just any error. In this case, we may
get a test error instead of a failure, and waste time suspecting error
free test code.

This patch add a new assertNotRaises assertion, making it easy to get a
test failure in such cases.

This assertion can be used inline:

    self.assertNotRaises(func, "foo", bar=2)

Or as a context manager:

    with self.assertNotRaises():
        that_func('foo')
        other_func(bar=2)

The test will fail if any error was raised.

Change-Id: I33c96ca855753a75ffe2f82bdecab2e1612da08a
Signed-off-by: Nir Soffer <nsoffer@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/28177
Reviewed-by: Antoni Segura Puimedon <asegurap@redhat.com>
Reviewed-by: Dan Kenigsberg <danken@redhat.com>