restructure certs/keys; add key/cert generation

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