improve zerovm return code handling

zerovm can produce non-zero return codes when something abnormal happens not only in zerovm, but in untrusted code also
developer needs context of the problem, for that reason we try to save all output we've got to the places specified in job description file and do not discard it
we also set HTTP status 500 on the response where at least one node failed with bad return code
did some refactoring of the functions in the vicinity of error code handling to better isolate the issue
fixes bug with wildcard expansion

see https://groups.google.com/forum/#!topic/zerovm/peN_dAUxxHo
fixes a corner case where:
- count = 1
- no wildcards in read-only devices
- wildcards in write-only devices
Merge pull request #143 from pkit/error_codes

improve zerovm return code handling
Merge pull request #146 from pkit/bug_fix

fixes bug with wildcard expansion