When a message was unexpected and small enough, it raised a
DataError, which contradicted the reasoning about ignoring
unexpected messages. Now all unexpected messages are ignored
regardless of their size.
When a message was expected, but too big, it was ignored, which
made debugging difficult. Now it raises a DataError.