Custom TLS Extensions Edit

Incomplete efforts to allow users of the library to implement custom TLS extensions.

See TODO.md for the shortcomings and main questions I'm dealing with.