Make single parameter constructors explicit

Ensures we don't accidentally convert to int to message_t or context_t, for example:

```c++
void PrintMessage(const zmq::message_t& msg)
{
...
}

PrintMessage(5);  // Currently compiles, it should not
```