Graceful Error Handling (#305)

This branch seeks to correct the problem brought up in #305.

 * `Package#destroy` has been added, which is called:
    * if the `component.json` fails to download
    * if any files in the component fail to download
 * The **batch** dependency has been updated

One thing this PR is definitely lacking is corresponding tests, I couldn't really come up with a reliable way to mock up a random file download failure. Any ideas @visionmedia ?