Abstract out the queue of input buffers

In the future this will need metadata to handle document.write positions.
Eliminate the overhead of ~str::shift_char()

It copies the rest of the string into a new allocation :/
Make BufferQueue an Iterator
wip