https authentication support

This addeds two-way https authentication. If the flag -tlscacert is used, docker client will authenticate the server based on this. CA as well as docker daemon will authenticate clients based on this CA.

This closes #1745

This does *not* support unauthenticated HTTPS because I don't really see the need and it makes the flag/user interface much harder to understand. So -tlscacert is what enables https and docker will accept remotes only if signed by that CA.

This PR also includes a basic https integration test. I'm happy to add more test cases (at least some invalid certificate for both server and client), but since I struggled hard with the tests and I'm not very happy with them, I would like to get some input on what I have so far.