tests: add expect_protocol_error function

This function checks if a particular protocol error came in wire.
It's usefull in the cases where we hitherto used FAIL_TEST.
The problem with FAIL_TEST is that *any* assert will pass the test,
but we want only some asserts to pass the test (i. e. we don't
want the test to pass when it, for example, can't connect to display)
The FAIL_TESTs are good only for sanity testing.

The expect_protocol_error allows us to turn all FAIL_TESTs to TESTs
as will be introduced in following patches.
tests: remove assert from frame_callback_wait()

This function did dispatching wrapped in assert so when an error came,
the test was aborted. Now, with expect_protocol_error, we need
this function to abort only when we are not calling expect_protocol_error
afterwards. So instead of calling the assert inside of this function,
wrap this function into assert in appropriate places.
tests: use expect_protocol_error in tests

Turn FAIL_TESTs to TESTs. FAIL_TESTs are bad...