Correctly handle empty response bodies.

The thrift representation of an empty array is the same as null, so when the body is empty (such as with a HeadSync), the current implementation of Execute will throw an exception because MemoryStream cannot handle nulls. Instead
use an empty byte array. Also add integration test for this case.
Merge pull request #572 from danp60/bugfix/thrift_empty_response

Correctly handle empty response bodies in Thrift