drop potentially infinite remaining input from error (lazy bytestrings)
fix potentially huge error messages (strict bytestrings)

replace potentially huge remaining input with its length.
details and motivation

the following code can be copied to tests and run in both
this patch and before.  the comment at the end explains the
difference: with this patch, the <?> contexts will be contained
in the error message.

module Main (main) where

import Data.Attoparsec.ByteString.Char8

main :: IO ()
main = print $ parseOnly (many1 "*" <?> "i want stars") "#**!"

-- 0.12.1.0 *" <?> "i(before #71):
-- Left "Failed reading: takeWith"
--
-- 0.12.2.0 (#71):
-- Left "i want stars\nFailed reading: takeWith\nlength of remaining input: 4\n"