Change reading to loop until enough bytes are read

This is a proposed fix to the issue experienced with running Mycroft on the production VM.

[The C# Docs on Stream.Read](http://msdn.microsoft.com/en-us/library/vstudio/system.io.stream.read) suggest that the implementation may arbitrarily choose to not read the requested number of bytes from the stream. In a manner similar to the example provided in the docs linked above, this commit simply keeps asking stream.read for more bytes until the length requirement is satisfied.

This is tested & working on my local machine, but not on the VM.