buffer escapes, so we can back out and treat them as individual chars
move this into the impl
provide a timeout for reads when trying to match an escape
refactor
fix next_key