key.cpp: fail with a friendlier message on missing ssl EC support

Previously if bitcoind is linked with an OpenSSL which is compiled
without EC support, this is seen as an assertion failure "pKey !=
NULL" at key.cpp:134, which occurs after several seconds. It is an
esoteric piece of knowledge to interpret this as "oops, I linked
with the wrong OpenSSL", and because of the delay it may not even
be noticed.

The new output is

: OpenSSL appears to lack support for elliptic curve cryptography. For
more information, visit
https://en.bitcoin.it/wiki/OpenSSL_and_EC_Libraries
: Initialization sanity check failed. Bitcoin Core is shutting down.

which occurs immediately after attempted startup.

This also blocks in an InitSanityCheck() function which currently only
checks for EC support but should eventually do more. See #4081.
Add MiningRequiresPeers chain parameter
Add MineBlocksOnDemand chain parameter
Add DefaultMinerThreads chain parameter
Add DefaultCheckMemPool chain parameter
Get rid of RegTest()
Move majority constants to chainparams
Add AllowMinDifficultyBlocks chain parameter
Add RequireStandard chain parameter
Add RPCisTestNet chain parameter
Get rid of TestNet()
Replace virtual methods with static attributes, chainparams.h depends on
protocol.h instead of the other way around
net.h was using std namespace through chainparams.h included in protocol.h
Use Params().NetworkID() instead of TestNet() from the payment protocol
[Qt] Improve rpc console history behavior
[Qt] Remove CENT-fee-rule from coin control completely
Merge pull request #3824

f0a83fc Use Params().NetworkID() instead of TestNet() from the payment protocol (jtimon)
2871889 net.h was using std namespace through chainparams.h included in protocol.h (jtimon)
c8c52de Replace virtual methods with static attributes, chainparams.h depends on protocol.h instead of the other way around (jtimon)
a3d946e Get rid of TestNet() (jtimon)
6fc0fa6 Add RPCisTestNet chain parameter (jtimon)
cfeb823 Add RequireStandard chain parameter (jtimon)
21913a9 Add AllowMinDifficultyBlocks chain parameter (jtimon)
d754f34 Move majority constants to chainparams (jtimon)
8d26721 Get rid of RegTest() (jtimon)
cb9bd83 Add DefaultCheckMemPool chain parameter (jtimon)
2595b9a Add DefaultMinerThreads chain parameter (jtimon)
bfa9a1a Add MineBlocksOnDemand chain parameter (jtimon)
1712adb Add MiningRequiresPeers chain parameter (jtimon)
Merge pull request #4300

dff0e3b [Qt] Improve rpc console history behavior (Cozz Lovan)
Merge pull request #4305

95a9383 [Qt] Remove CENT-fee-rule from coin control completely (Cozz Lovan)
Remove unused Print/PrintHex functions

You can just use HexStr(script) or script.ToString() for debugging, no
need for these extra functions.