binary/reader: Rework logic to not suck
Previously we've relied on cruft "loaded" logic, we're now going to rely
on explicit "read" logic in a payload wrapper, which allows us to add
methods to a Payload that aren't appropriate in the Writer APIs.
Additionally this will allow us to add iteration methods in future,
which will "just work" without requiring obtuse branching logic to
work with.
Signed-off-by: Ikey Doherty <ikey@serpentos.com>