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.
Remove double-dash parameters from mapArgs

Should be merged after pull request #4281
("Add `-version` option to get just the version #4281"),
because is changed "--help" to "-help".

Checked that grep of 'mapArgs.count("--' returned only
three places that are fixed by pull request #4281.
[Qt] Remove CENT-fee-rule from coin control completely
Move checkpoint based heuristic checks to AcceptBlockHeader
Ping automatically every 2 minutes (unconditionally)

... instead of after 30 minutes of no sending, for latency measurement
and keep-alive. Also, disconnect if no reply arrives within 20 minutes,
instead of 90 of inactivity (for peers supporting the 'pong' message).
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.
Merge pull request #4318 from laanwj/2014_06_script_unused_debugging

Remove unused Print/PrintHex functions
small formatting, indentation and comment fixes

- contains zero code changes
remove unused UPnP code from main.h
remove wrong ; in chainparams.h and order includes
build: qt: split locale resources. Fixes non-deterministic distcheck

The rcc tool is quirky and only honors files in the same directory as the qrc.
When doing an out-of-tree build (as 'make distcheck' does), the generated
translation files end up in a different path, so rcc can't find them.

Split them up so that rcc is run twice: once for static source files and once
for generated files.
build: Add a top-level forwarding target for src/* objects

Fixes #3955. It's hackish, but seems to always function as expected. Examples:

make src/bitcoind
make src/qt/bitcoin-qt
make src/libbitcoin.a
Updated Debian example bitcoin.conf with config from wiki + removed some cruft and updated comments
Merge pull request #4317

68ba85f Updated Debian example bitcoin.conf with config from wiki + removed some cruft and updated comments (Giuseppe Mazzotta)
Merge pull request #4319

1c24187 remove unused UPnP code from main.h (Philip Kaufmann)
Merge pull request #4323

38e324a build: qt: split locale resources. Fixes non-deterministic distcheck (Cory Fields)
Merge pull request #4322

77a055d build: Add a top-level forwarding target for src/* objects (Cory Fields)
Merge pull request #4321

699fe63 remove wrong ; in chainparams.h and order includes (Philip Kaufmann)
Merge pull request #4277

4a09e1d key.cpp: fail with a friendlier message on missing ssl EC support (Andrew Poelstra)