Build fail issues

This addresses the various build fail issues that were raised in #115, #118 and #120.

Previous shifter behaviour was broken in a few places and a lot of failures were not printing the errors correctly. This patchset addresses those issues.

This patchset primarily:
* stops printing all errors at the end of a run (as per previous behaviour);
* fails as soon as a build *fail* occurs
* fails on some conditions which were incorrectly not failing before (empty skins)
* actually displays an error when the build fails rather than the standard 'done' message - hopefully this will reduce confusion

It additionally:
* doesn't fail if the source file was also empty; and
* changes lint failures to warnings since they don't actually break a build.

I haven't been able to address the unit test failures yet - if someone else has time to do so that'd be good. For some reason I'm not seeing all of the unit tests running when run through npm test, and I'm not getting a list of the failures in order to fix them.

I have, however, built YUI3, and Moodle and am not seeing any shift failures on either project. I've also tested that:
* failures do happen if they should, e.g. with:
 * invalid files in the jsfiles listing
 * missing skin files
 * invalid build directories (no build.json and no properties.