Improve error reporting and package removal functionality

The horribleness of bower/bower#120 led me into this repo, where I realized that the `403 Forbidden` responses that everybody kept seeing were inaccurate: the problem was a bad argument, and the status should've been a `400`.

I combed through [`packages.js`](https://github.com/jamesreggio/registry/blob/cbd0fb840bb609ccd58f74a5d230a41765fcfb98/lib/routes/packages.js), where I enhanced the error reporting and generally cleaned up the logic. I also pulled in the changes from bower/registry#58, which were reasonable and should've been merged.

Because I'm not a member of the Bower 'in' crowd, I don't really have the means to test these changes (I don't have the time to setup a mock database with a reverse-engineered copy of the schema). Perhaps somebody could pull these down and run a basic smoke test?