Adding TLS_FALLBACK_SCSV support

This is an attempt to upstream changes made in Android
for POODLE. I have tried to be more sympathetic here to APIs
and make it optional.

This is early / incomplete, but I'm sending it out for feedback in
case you get a chance to look before Monday.
See above.

More details on testing pain: On Android we have an inability to test a server that doesn't enforce TLS_FALLBACK_SCSV checks. I've had to make some horrible hacks involving a client socketfactory that _ignores_ attempts to set TLS_FALLBACK_SCSV to work around it. Oh, the things I've done!

By making it optional we can continue to simulate an old-style communication (by leaving the TLS_FALLBACK_SCSV out) and check the fallback works for old servers.

The reason: there's no way (on Android, at least) of telling it not to enforce the TLS_FALLBACK_SCSV check. I had pushback from OpenSSL/BoringSSL on making this optional. While adding TLS_FALLBACK_SCSV is left to the layer above Socket, enforcing it on the server is baked in. So we lose the ability to run any tests that test this "manual" TLS fallback behavior without resorting to socketfactory atrocities. This approach was partly supposed to be my redemption.

Simultaneously, I'm trying to satisfy a world where I both break fallbacks (because TLS_FALLBACK_SCSV will cause most fallbacks against modern servers to fail), and add more (so we are more like Chrome and try leading with TLSv1.1, TLSv1). Woe is me.