Adds validator to the protocol

First stab at programatically verifying that a dictionary conforms to
the protocol.  Checks everything that can be verified on a local
process.