Make IProtocol constructor explicit

It's pretty unlikely that this could be misused in a child class.
But this is safest.