Fix parser panic after messages with \r\n in body

Fix bug where the parser could panic in the following scenario:
  - Buffer contains some text including \r\n, at some index k in the
    text
  - The parser calls NextChunk(n) on the buffer to get the next n bytes
    from the buffer, and n < k.
  - (The parser now updates the cached indices of all line breaks in the
    text, so our line break index is now stored as k - n ( < 0 ).
  - Parser now calls NextLine() on the buffer to get the next line. The
    buffer tries to find what it thinks is the first \r\n at index
    k-n, but since that \r\n was withdrawn from the buffer when getting
    the chunk of size n, k-n is negative and so the buffer panics.

Fix is to expire line breaks from the cache if they have already been
returned in a chunk request.