Lot's of exploration improvements.

I made a bunch of changes while trying to implement the exploration component for the Counter protocol. The explore protocol now works, and it uses an updated method to guess the current state from the model. I also added the protocol factory and a simple driver class.

I also updated the Counter protocol to include payload lengths.