Move catch clause closer to cause of error that is caught

This makes the code easier to follow, and it also makes sure to not catch
stuff from reporters that really should not be caught by this.
Add extra test case to Serializer

This will be an important case to handle when the suite runner can be cancelled.
Make Serializer handle reporters that don't implement gotMessage
Make Serializer forward registrationFailed calls