We found a way to avoid creating intermediat adapters...

...and it's fast...
...except it's broken.
Merge branch 'protocol-manager' into spike-chain-no-adapters-necessary
Fix bugs with the new method.

1) provides_protocol did not work correctly for hierarchies of interfaces
2) we discarded offers that failed to adapt too quickly; now er consider an
   offer as visited if it was already used on the same path