restructure certs/keys; add key/cert generation

NID is also now an exposed type
improve GC handling (fixes #10)
standardize OpenSSL return handling
add SNI (RFC 6066)