Allow keymaps to have a call property, which is called to look up bindings

Issue #2915