Refactor SSL options for better default handling.

Move SSL options into their own hash so we can handle defaults in a more
sane way. This also makes it much clearer to the user what's happening
when defaults are used for SSL parameters.
Use git ls-files -z.