skip_to: assume it always moves forward, and start the binary search from the current cursor position; move list.cc to list.h