Encapsulates key exchange global state

Instead of having some static variables around,
we now have a keyx module that contains all that
state.
Removes some dependencies
Extracts DH1024 warning into its own function
Moves some code into irc_helper
Reduces include directives in header files
Stops exporting DH callback functions
Fixes SHA arguments constness
Moves blowfish implementation details into .c
Removes encrypt_key
Encapsulates valid_blowfish