Maint fixes for ssl initing and ssh exposure

A couple of fixes which could go into a maint branch if we decided to go that way.

The ssh bit is a bit tricky. It will produce the right header for the version that's built, and it also fixes the signature in the non-ssh case to be compatible with the libssh2 one, so programs built with the header without ssh can still work if the shared object is replaced with one which does support ssh.

I'm torn between doing that and just making the user set a define if they're interested in using ssh, which is in practice what we already have, we'd just have to document it and choose a name for the define which is not one that we use internally.