Don't set ssl_version unless it's provided.

Fixes #166, #167
Enable SSL peer verification by default.

Fixes #139, #255

SSL verification will not be performed if `:verify_ssl` is falsy or a
constant like `OpenSSL::SSL::VERIFY_NONE` that disables verification.
Expose specifying SSL cipher suite list.
Fix up tests.

Most of the should_not_receive calls should not have been passed a
with(), since that's not what they were intended to test.
Override default ciphers if they appear insecure.
Add tests around SSL cipher defaults behavior.
Test that OpenSSL constants have expected values.
Check at runtime that VERIFY_PEER != VERIFY_NONE.

It looks like a lot of projects override VERIFY_PEER to equal
VERIFY_NONE, which we'd like to discourage.

https://github.com/search?l=ruby&q=OpenSSL%3A%3ASSL%3A%3AVERIFY_NONE&ref=cmdform&type=Code
Expose option to set SSL cert_store.

Fixes: #254
Set an SSL cert_store by default.
Adapt Windows root cert store code from puppet.
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.
Add rudimentary tasks for building Windows gems.
Ignore /.bundle/.
Remove some references to Puppet.
Hook Windows CA code into default_ssl_cert_store.
Add comment about why we need ffi.
Add integration test for the default cert store.
Add some tests around Windows::RootCerts.