Handle mutiple expected strings within the exception message.

When building the diff set items are arbitrarly ordered. This caused
intermittent test failures (especially under Py3, go figure). Now we're
accepting either a simple string or a list of expected results. List
items are evaluated one by one.