Disable SSLv3 (in favor of TLS) for the RPC client and server.

TLS is subject to downgrade attacks when SSLv3 is available, and
 SSLv3 has vulnerabilities.

The popular solution is to disable SSLv3. On the web this breaks
 some tiny number of very old clients. While Bitcoin RPC shouldn't
 be exposed to the open Internet, it also shouldn't be exposed to
 really old SSL implementations, so it shouldn't be a major issue
 for us to disable SSLv3.

There is more information on the downgrade attacks and disabling
 SSLv3 at https://disablessl3.com/ .
[RPC] add rpc-test for http keep-alive (persistent connections)
Merge pull request #5436

11d7a7d [RPC] add rpc-test for http keep-alive (persistent connections) (Jonas Schnelli)
Merge pull request #5434

683dc40 Disable SSLv3 (in favor of TLS) for the RPC client and server. (Gregory Maxwell)
Use enum for serialization type.

nType gets handed through all these because some things serialize differently
on disk, for hashing or for networking.  But using an int is just lazy
and opens up the possibility of order mixup, since nVersion is also an int.

For the overloading hack to default to calling a member function, we
can (ab)use the nVersion parameter instead.
Make SER_* values a normal enum.

commit e754cf4133c (Split off CBlockHeader from CBlock) removed
the application-specific flags from the serial type, but left
the comment and the weird spacing in the values.

Make SER_* a normal enum, and test for (in)equality as expected.

I also changed the weird negative in CAddress serialization from:

        if ((nType & SER_DISK) ||
            (nVersion >= CADDR_TIME_VERSION && !(nType & SER_GETHASH)))

To the clearer:
        if ((nType == SER_DISK) ||
            (nVersion >= CADDR_TIME_VERSION && (nType == SER_NETWORK)))