Replace loop/recur with a lazy sequence

In the :pred-string decoder, replace the loop/recur with a lazy
sequence and take-while.

Although this makes the code longer, the :pred-string decoder
itself is much more readable after the change, and buffer-seq can
later be exported too, after a bit of refactoring.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>