Jc/webmachine callback api

Update the WM callback, and add a client API for use with ibrowse
future TODO, or something that should be in this PR?