Epoch

introduce a `epoch` type, which serves information about the established session towards a user of the API

this is not completely finished: 
 [ ] `version` has to be removed from `handshake_state` (because we have that information now in epoch)
 [ ] `reneg` should be moved to `epoch_data` (how did it end up in `handshake` in the first place?)
 [ ] client needs to distinguish between awaiting_server_hello while renegotiating and initial handshake

thus, please do not merge yet (also conflicts with #173 (please merge 173 first)) - happy to hear what you think about this epoch business @pqwy