fix and add testing via zuul

Simplify logic to bind and unbind. Unbind requires a "baton" function
unless we go the route of attaching to specific element. Can't just
store the functions in the module because a single function could be
bound to multiple elements.