Fix error handling, also migrate to go1.3

@azylman I agree.  The structure of the code seems pretty complex for very little win (we do some io concurrently).  I spoke with @kvigen about this a bit while putting in this fix.  I'd definitely be willing to try a more large scale refactor.