Complete TLS/SSL Support, near-mirror of Docker CLI

This is an expansion of @denibertovic 's work on #187

I'd re-done some of his work today, and expanded on it quite a bit by the time I realized it existed here. I've forked his commit to give him credit, and expanded on his work.

Note: This is my first time writing Python longer than 5-10 lines. Let me know if there are any code smells! I know the Exception class can be a sticking point, but I felt it was important to remind the user where the TLS API comes from, and to DRY that up a bit.

Also, I left a bunch of comments to help readers understand why some of the additions are necessary. Tests pass, and I connect fine using the options; but, alas, I haven't written any new tests for this PR.