Return process exit code for attach

Fixes #2240
go fmt.

result of `gofmt -w -s .` without vendors.
Engine: integer job status, improved stream API

* Jobs return an integer status instead of a string
* Status convention mimics unix process execution: 0=success, 1=generic error, 127="no such command"
* Stdout and Stderr support multiple thread-safe data receivers and ring buffer filtering
Engine: better testing of streams and of basic engine primitives. Coverage=81.2%
Fix a bug in Output.Write, and improve testing coverage of error cases.
Merge pull request #2964 from andrewsmedina/gofmt2

go fmt.
Merge pull request #2781 from shykes/engine-status-int

Engine: integer status, better streaming, lots of tests
Merge pull request #2926 from crosbymichael/attach-wait

Return process exit code for attach