Set up to read the supplied number of binary bytes. This recycles all the
data currently waiting in the line buffer, if any. If the limit is nil,
then ALL subsequent data will be treated as binary data and passed to the
upstream protocol handler as we receive it. If a limit is given,
we‘ll hold the incoming binary data and not pass it upstream until
we‘ve seen it all, or until there is an unbind (in which case
we‘ll pass up a partial). Specifying nil for the limit (the default)
means there is no limit. Specifiyng zero for the limit will cause an
immediate transition back to line mode.