Fix handling of http 400 errors
Fix handling of http 400 errors

Before 400 errors were silently dropped. This caused composer to store
the returned body (usually some html) in cache. This resulted in later
errors when composer tried to extract this error response as zip.

With this exceptions thrown it handles the error gracefully and falls
back to the next URL provided by the package configuration.

erasys/composer,JBleijenberg/composer,vdm-io/composer,localheinz/composer,stof/composer,phansys/composer,davidolrik/composer,curry684/composer,floverdevel/composer,DiceHoldingsInc/composer,hirak/composer,Seldaek/composer,MoT3rror/composer,pierredup/composer,SpacePossum/composer,gencer/composer,balbuf/composer,remicollet/composer,Danack/composer,till/composer,yaman-jain/composer,fabiang/composer,fabpot/composer,johnstevenson/composer,milleruk/composer,andrerom/composer,bd808/composer,nicolas-grekas/composer,naderman/composer,nevvermind/composer,slbmeh/composer,stefangr/composer,staabm/composer,alcohol/composer,composer/composer,Soullivaneuh/composer,javihgil/composer,jreinke/composer,dzuelke/composer