Add listen-sequence!/unlisten-sequence! and more predicates

listen-sequence! provides a way to match and dispatch 
a function over a subsequence of mapping key-set over a 
sequence of keyboard events. This allows one to easily
define keyboard shortcuts, etc.