Add fancier ECDHE support

This is based on #9, but it adds more curve definitions and ELLIPTIC_CURVE_DESCRIPTIONS.  The latter lists curves that are actually supported on the system's OpenSSL.