ssl: init only once without threads

The OpenSSL library-loading functions do not expect to be called
multiple times. Add a flag in the non-threaded libgit2 init so we only
call once.

This fixes #2446.
ssh: create the right callback signature based on build options

When linking against libssh2, create the transport.h such that it
contains its definition for custom crypto and keyboard-interactive
callbacks.

If we don't link against libssh2, create an equivalent signature which
has void pointers instead of pointers to libssh2 structures.

This would be one way to fix #2438.
ssh: always declare the libssh2 types

This lets a user decide they do want to use keyboard-interactive after
they've compiled.
Merge pull request #2449 from libgit2/cmn/maint-21

Maint fixes for ssl initing and ssh exposure