PUSH_PROMISE frame and the marshalling of it
Add unmarshalling for PUSH_PROMISE
CONTINUATION frame and its marshalling logic
CONTINUATION unmarshalling
Mark frames to do later
Handle incomplete frame by returning nil

Will use this for a Scanner implementation
Make unmarshal not mutate the passed-in byte array

Need to not do this in order to get scanning for frames working
right
Scanner for reading frames from an io.Reader