Cleanup: separate unix-related codes to make Swarm buildable on Windows

I am new to contributing to Docker projects. Let me know if I am doing something wrong.

There will be some move to make `Docker` and its related projects available for Windows in the new future. `Swarm` is still young so it's great to have some Windows-related refactoring early for this project.

This PR is initially separating Unix / Windows specific codes into different files and guarding them with the platform `+build` flag. This PR also allows contributors to compile and start hacking `Swarm` on Windows.
you can use `// +build !windows` here