Add ByteSourcePayloadIterator to BasePayloadSlicer

ByteSourcePayloadIterator avoids buffering the entire slice like
InputStreamPayloadIterator does.  Also rename PayloadIterator to
better reflect its intent and reduce its visibility.
[minor] `meta` to match the constructor param - or rename that to match this?