Add tests that ensure we can fetch branches with ghosts in their ancestry.
Also added similar tests when stacking is involved. Then fixed both the StreamSource and GroupCHKStreamSource to handle these cases. Andrew's fix didn't work in the case of Stacked, as it only worked if the initial fetch created a fully complete target. Not if there was a ghost involved with the transmitted revisions, and stacking was also involved.
Basic fix is just to allow absent records during 'get_stream_for_missing_keys', the StreamSink is then responsible for ensuring no content is actually missing.