Delay SSLSocketImpl instantiation until needed DO NOT MERGE

Class preloading will create an instance of objects if they are in
static fields, so put the ones we don't want instantiated into a holder
class that is not preloaded.

(cherry picked from commit da5b7116b58795b169961cbd63c2b21bac741d9a)

Bug: 9984058
Change-Id: Ifbf7b7a3668f19ca21fa66a486ae557086a195b5
Merge tag 'android-4.3_r3.1' of https://android.googlesource.com/platform/libcore into cm-10.2

Android 4.3 Release 3.1
workaround an armv6 gcc 4.7 bug

this fixes com.android.phone getting a SIGBUS on startup due to mmap'd
tzdata reads that always crash in this libcore code.
gcc 4.8 works without issue and 4.6 worked fine with cm10.1, so this
workaround has been made specific to just gcc 4.7.

Change-Id: Ide3b33dd8bdbb1e0f1a91b65ba21c7aa8e276af5
jsse: Use TLS 1.2 and AES as the default cipher.

Don't use the weak RC4 MD5 as the default cipher and by default allow
TLS 1.2.

http://op-co.de/blog/posts/android_ssl_downgrade/

Change-Id: I8ff3bd50b40a75c54e94f18e78ea54690bee3f87
Revert "jsse: Use TLS 1.2 and AES as the default cipher."

This reverts commit a3fd3e33d3cc469d9d9c10e3f23c658983360b66.

Change-Id: I13737b6cb0e31f0e6a49b5b736d54c665850d7b1
jsse: Make sure we use TLSv1.2 as the default protocol.

We should at least try to use TLSv1.2 if the server supports it and do
not use error prone versions of the protocol.

https://community.qualys.com/blogs/securitylabs/2013/09/10/is-beast-still-a-threat

Change-Id: Ic1faad2bb1dd526930c4c5280d0851cbc8087047
Revert "jsse: Make sure we use TLSv1.2 as the default protocol."

This reverts commit c6987986c4b5f44899052ab1c93483d80997315f.
CTS includes specific test units for this, and this patch makes
us fail certification.

Fixes libcore.java.net.URLConnectionTest#testConnectViaHttps and
tests.api.javax.net.ssl.SSLSessionTest#test_getProtocol
Fix ZipFile local file entry parsing.

The file name length is given in both the central directory entry
and the local file entry, with no consistency check. ZipInputStream
and the VM's native code both use the local file entry's value but
ZipFile was using the value from the central directory.

This patch makes ZipFile behave like the other two. (Even though,
unlike the others, ZipFile actually has enough information to detect the
inconsistency and reject the file.)

Bug: https://code.google.com/p/android/issues/detail?id=57851
Bug: 9950697
Change-Id: I1d58ac523ad2024baff1644d7bf822dae412495d
(cherry picked from commit 257d72c1b3a69e0af0abe44801b53966dbf7d214)
libcore: Do not pre-bind socket in connect method

The connect method in Java should not have to explicitly
bind to Inet4Address.ANY. For unbound sockets, the kernel's
connect function will perform an inet_autobind.

cherry picked from commit-id f4d980670fd4938a6b5ec07a5818454fc44f2a57

CRs-fixed: 370996
(cherry picked from commit c52ae135bb14a96d237e971fb01bfae30723be2a)

Change-Id: I276aa01161e53b90beb8fed2eadb2d48922688d6
Merge remote-tracking branch 'cm/cm-10.2' into HEAD