Openssl

This patch series implements the internal layer that allows the use of cryptographic libraries other than the default LibTomCrypt. It adds an OpenSSL implementation.
- The first patch: `Add crypto provider internal API` is basically what was reviewed in PR #35. It makes a clean separation between the crypto services (`tee_svc_cryp.c`) and the LibTomCrypt implementation.
- The second patch: `Import libcrypto source code from OpenSSL 1.0.1i` brings in some OpenSSL code under `core/lib/openssl`. The code is committed unmodified, and is not built at this stage This commit can serve as a reference point when merging future versions of OpenSSL.
- The third patch: `OpenSSL: AES-XTS: allow multiple calls...` is an enhancement needed for proper TEE_ALG_AES_XTS operations. It deals with encryption and decryption of partial buffers.
- The fourth patch: `libutils: add functions needed by OpenSSL...` adds some standard functions that are required to build OpenSSL.
- The fifth patch: `Add support for $(lib-use-ld) and $(lib-ldflags)` is a small addition to the OP-TEE build system. It is used in the next patch to avoid adding unused functions to the OpenSSL library (and thus reduce the final size of the TEE binary).
- Finally, the sixth patch implements the OpenSSL crypto provider.