refactor image comparison

 - with statement now implicitely runs comparison before cleaning up
   and the comparison raises a dedicated ImageComparisonException
   subclassed from unittest.TestCase.failureException
   (removes duplicated code in test cases)
 - absolute tolerance is set according to matplotlib version
test for image comparison tests ;)