[SECURITY] Change HMAC bits.

This needs security review to make sure algorithms keep working correctly.
Rearchitect DH key generation to make it better structured.
Use std::enable_shared_from_this<> instead of boost's.
Initialize host_ pointer in key_responder.

Fixes invalid access in DH key state.