Fix crash on sending a std::string larger than 2GB

The socket::send(std::string) function calls send_raw which has a signed integer
as the buffer length. With messages larger than 2GB this causes the size_t
passed to ZMQ to be a large positive value near
std::numeric_limits<size_t>::max(). This is fixed by changing send_raw to take
a size_t instead of an int for the buffer length.
Merge pull request #46 from cmdevries/master

Fix crash on sending a std::string larger than 2GB