Merging master into logging

I'm just trying to validate the approach you were taking is still viable and whether it's worth going forward against the master code. This is regarding https://github.com/docker/docker/issues/7195

Notes:
- removed broadcastwriter as per the changes in logging branch, let me know if that's not intended anymore
- merged in changes as-is from master

Known issues

- Doesn't pass all integration tests, master and logging do, so it's something I'm missing

If pushing through with tests against this approach is viable.. let me know and I'll continue, otherwise I'll look around at the most recent approach for the current docker release.