JobRequirements 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 when extracting JobRequirements by using boost shared_array.

Reduce memory when extracting JobRequirements by using boost shared_array.
By using shared_array we can remove a ConditionalStorage and std::vector copy
from happening reducing the amount of temporary memory to extract a serialized
JobRequirements.
Merge pull request #169 from robertmaynard/reduce_jobreqs_mem_usage

Reduce jobreqs mem usage