Fixed: Handling empty messages

Issue #6: When a message was empty, the header was not correctly
disposed.
Check for null message reader

When disconnecting, the await will return a null reader. This need to be
checked.