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.