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.
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).
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)
Merge pull request #4170

ac14bcc small formatting, indentation and comment fixes (Philip Kaufmann)
[Qt] allow setting listen via GUI

- add DEFAULT_LISTEN in net.h and use in the code (shared
  setting between core and GUI)

Important: This makes it obvious, that we need to re-think the
settings/options handling, as GUI settings are processed before
any parameter-interaction (which is mostly important for network
stuff) in AppInit2()!
Merge pull request #4290

56b07d2 [Qt] allow setting listen via GUI (Philip Kaufmann)
small cleanup of net

- remove an unneded else in ConnectNode()
- make 0 a double and change to 0.0 in ConnectNode()
- rename strDest to pszDest in OpenNetworkConnection()
- remove an unneded call to our REF() macro in BindListenPort()
- small style cleanups and removal of unneeded new-lines