src: move more crypto_dh.cc code to ncrypto
Moving more bits and pieces to ncrypto.
Unfortunately this is semver-major because it changes error codes in a couple of places. The change is worth it as it simplifies a few things and eliminates a special case error code that is only used in this one spot. This could be made semver-patch or semver-minor with a bit more work but it makes the API a bit more awkward. I'd rather not but if folks prefer it we can. No longer semver-major
While I'm at it, this makes a number of other cleanups along the way.