Fix portability issue with struct.unpack()

It was provided a bytearray while expecting a string.
Accept file parameter messages with empty name fields

This allows clients to register files to be listed on the command line
with no preceding flags. Closes #1.
Check number of bytes received in messages.*Message.receive_bytes()

And consistently use the method to read bytes from sockets.
Merge pull request #3 from fedde-s/master

Fix the issues we discussed today