JobResult de-serialization from char* requires one less copy now.

Instead of copying the entire message into an std::string and than
passing that to the buffer, we instead fill the buffer directly
with the char*.
Reduce memory by having JobResult use custom data storage.

JobResult needs to be considered heavy data like JobContent and JobRequirements.
For that to happen it needs the ability to store the data as a raw char blob.

At the same time we use shared_array to remove a std::vector copy reducing the
amount of temporary memory to extract a serialized JobResult.
Merge pull request #170 from robertmaynard/zero_copy_jobResult

Zero copy job result