Implement client protocol-status enforcement.
According to our spec, a client that lacks a recommended protocol should warn on startup, and a client that lacks a required protocol should refuse to start without special configuration. We should implement this, since it is forward-compatibility mechanism.