MediaEngineTests: add a sanity check to AssertTransition()

If this sanity check had been there before, I wouldn't have had
scratched my head for so long! This happens when using dynamic-ish
things like the 'object' type...
MediaEngineTests: add new overload for WaitFor()

This overload being missing meant that you could think it was
*not* missing, and send some System.Action object as the first
element of the `params object [] states` parameter.