crypto: introduce ECDH

cc @trevnorris 
Wait, nm. That was only for `Unwrap<T>()`. Which I see you've already done.