rewrite state machines to carry state more explicit

- security_parameters is gone
- state machines are explicit
- handshake messages are only accepted linearly
- client is ok with talking TLS1.0 / TLS1.1 (updates to interop-sserver)
- test cases are fine
actually check version in PMS
only rekey if user specified rekeying in config
move stuff around... get rid of flow, API is now in engine.ml
handshake utils used in both client and server are now in handshake_common_utils
config is the configuration - since it is used in client/server and also engine, I put it into a separate file
provide interfaces for both config and engine
clarify
Merge pull request #85 from mirleft/new-state

rewrite state machines to carry state more explicit