Remove support for passing None for end in GroupCompressBlock.extract.
I decided the removal of the extra int in wire-bytes and indices was not a worthy
trade-off versus the ability to _prepare_for_extract and cheaply filter bytes
during fetch. And it makes the code simpler/easier to maintain.
Also, add support for having a 'empty content' record, which has start=end=0.
Support costs very little, and simplifies things.
And now GroupCompressBlock.extract() just returns the bytes. It doesn't try to
sha the content, nor does it return a GCBEntry. We weren't using it anyway.
And it can save ~50 seconds of sha-ing all the content during 'bzr pack' of
a launchpad branch.