Added a binary encoder and test binary encoding
Fix bug and add test for WILL/DO handling of unknown options
Refactor to allow interception of option negociation even if there is a known option