archive/tar: expand abilities of TestReader
archive/tar: expand abilities of TestReader

Motivation:
* There are an increasing number of "one-off" corrupt files added
to make sure that package does not succeed or crash on them.
Instead, allow for the test to specify the error that is expected
to occur (if any).
* Also, fold in the logic to check the MD5 checksum into this
function.

The following tests are being removed:
* TestIncrementalRead: Done by TestReader by using io.CopyBuffer
with a buffer of 8. This achieves the same behavior as this test.
* TestSparseEndToEnd: Since TestReader checks the MD5 checksums
if the input corpus provides them, then this is redundant.
* TestSparseIncrementalRead: Redundant for the same reasons that
TestIncrementalRead is now redundant
* TestNegativeHdrSize: Added to TestReader corpus
* TestIssue10968: Added to TestReader corpus
* TestIssue11169: Added to TestReader corpus

With this change, code coverage did not change: 85.3%

Change-Id: I8550d48657d4dbb8f47dfc3dc280758ef73b47ec
Reviewed-on: https://go-review.googlesource.com/15176
Reviewed-by: Andrew Gerrand <395a7d33bec8475c9b83b7d440f141bcbd994aa5@golang.org>

miolini/go,momchil-velikov/go,CAFxX/go,gdey/go,dterei/go,malvira/go,deft-code/go,momchil-velikov/go,momchil-velikov/go,dterei/go,suncycheng/go,theif519/go,derekmarcotte/go,4ad/go,linux-on-ibm-z/go,nawawi/go,mwhudson/go,linux-on-ibm-z/go,Samurais/go,odeke-em/go,binarycrusader/go,suncycheng/go,odeke-em/go,deft-code/go,mwhudson/go,Samurais/go,fjballest/golang,polyverse-security/go,malvira/go,vsekhar/elastic-go,momchil-velikov/go,kim-racktop/go,sndnvaps/go,josharian/go,Samurais/go,CAFxX/go,fjballest/golang,theif519/go,momchil-velikov/go,cloudflare/go,jacobsa/go,akutz/go,jacobsa/go,jacobsa/go,gdey/go,odeke-em/go,binarycrusader/go,vsekhar/elastic-go,ganboing/go-esx,theif519/go,golang/go,ganboing/go-esx,malvira/go,dterei/go,polyverse-security/go,dterei/go,rachtsingh/gogojuice,cyberroadie/go,Endika/go,vanloswang/go,malvira/go,derekmarcotte/go,suncycheng/go,vsekhar/elastic-go,fjballest/golang,Jordanzuo/go,nawawi/go,ganboing/go-esx,theif519/go,goodlang/good,golang/go,Endika/go,codestation/go,theif519/go,roth1002/go,josharian/go,ganboing/go-esx,cloudflare/go,nawawi/go,akutz/go,ganboing/go-esx,gdey/go,derekmarcotte/go,sndnvaps/go,deft-code/go,Cofyc/go,akutz/go,kim-racktop/go,nawawi/go,Cofyc/go,derekmarcotte/go,4ad/go,nawawi/go,ImJasonH/go,nawawi/go,mwhudson/go,codestation/go,derekmarcotte/go,4ad/go,jacobsa/go,roth1002/go,jacobsa/go,linux-on-ibm-z/go,odeke-em/go,josharian/go,roth1002/go,cyberroadie/go,Endika/go,roth1002/go,miolini/go,goodlang/good,deft-code/go,kim-racktop/go,cyberroadie/go,suncycheng/go,golang/go,ImJasonH/go,cyberroadie/go,4ad/go,Samurais/go,derekmarcotte/go,miolini/go,linux-on-ibm-z/go,vsekhar/elastic-go,fjballest/golang,Jordanzuo/go,polyverse-security/go,miolini/go,dterei/go,ganboing/go-esx,mwhudson/go,Cofyc/go,Jordanzuo/go,Jordanzuo/go,akutz/go,CAFxX/go,josharian/go,CAFxX/go,binarycrusader/go,akutz/go,deft-code/go,linux-on-ibm-z/go,cyberroadie/go,codestation/go,polyverse-security/go,polyverse-security/go,cyberroadie/go,ganboing/go-esx,rachtsingh/gogojuice,golang/go,derekmarcotte/go,Endika/go,binarycrusader/go,gdey/go,vsekhar/elastic-go,cloudflare/go,Jordanzuo/go,vanloswang/go,jacobsa/go,theif519/go,theif519/go,momchil-velikov/go,Jordanzuo/go,Endika/go,cloudflare/go,ImJasonH/go,goodlang/good,vanloswang/go,Endika/go,gdey/go,momchil-velikov/go,suncycheng/go,ImJasonH/go,kim-racktop/go,deft-code/go,malvira/go,codestation/go,cloudflare/go,vanloswang/go,goodlang/good,4ad/go,josharian/go,linux-on-ibm-z/go,gdey/go,miolini/go,odeke-em/go,rachtsingh/gogojuice,polyverse-security/go,roth1002/go,CAFxX/go,vsekhar/elastic-go,gdey/go,binarycrusader/go,Samurais/go,fjballest/golang,nawawi/go,codestation/go,jacobsa/go,Endika/go,sndnvaps/go,golang/go,mwhudson/go,suncycheng/go,Samurais/go,rachtsingh/gogojuice,dterei/go,cloudflare/go,vanloswang/go,goodlang/good,roth1002/go,polyverse-security/go,odeke-em/go,akutz/go,malvira/go,christopher-henderson/Go,cloudflare/go,binarycrusader/go,cyberroadie/go,cloudflare/go,golang/go,vanloswang/go,Endika/go,dterei/go,miolini/go,Jordanzuo/go,Jordanzuo/go,miolini/go,akutz/go,goodlang/good,deft-code/go,Cofyc/go,CAFxX/go,4ad/go,codestation/go,vanloswang/go,jacobsa/go,goodlang/good,polyverse-security/go,Samurais/go,roth1002/go,deft-code/go,mwhudson/go,linux-on-ibm-z/go,fjballest/golang,suncycheng/go,binarycrusader/go,Cofyc/go,codestation/go,4ad/go,golang/go,suncycheng/go,Cofyc/go,4ad/go,ImJasonH/go,vanloswang/go,mwhudson/go,goodlang/good,cyberroadie/go,Cofyc/go,theif519/go,mwhudson/go,akutz/go,sndnvaps/go,ImJasonH/go,Cofyc/go,rachtsingh/gogojuice,rachtsingh/gogojuice,vsekhar/elastic-go,fjballest/golang,josharian/go,miolini/go,codestation/go,vsekhar/elastic-go,nawawi/go,malvira/go,roth1002/go,linux-on-ibm-z/go,josharian/go,CAFxX/go,kim-racktop/go,odeke-em/go,dterei/go,kim-racktop/go,rachtsingh/gogojuice,sndnvaps/go,sndnvaps/go,rachtsingh/gogojuice,golang/go,binarycrusader/go,Samurais/go,ganboing/go-esx,kim-racktop/go,gdey/go,josharian/go,derekmarcotte/go,CAFxX/go,ImJasonH/go,kim-racktop/go,sndnvaps/go,sndnvaps/go,malvira/go,odeke-em/go,ImJasonH/go,fjballest/golang,momchil-velikov/go