Crypto cleaning

Move functions that are not provider-specific to tee_svc_cryp.c:
hash_createdigest(), hash_get_digest_size(), hash_check(),
mac_get_digest_size().

Crypto cleaning (2)
Import OpenSSL 1.0.1i

$ md5sum openssl-1.0.1i.tar.gz
c8dc151a671b9b92ff3e4c118b174972  openssl-1.0.1i.tar.gz
Add support for per-directory/per-library/per-file includes, and per-library CPP flags

The new variables that can be used in sub.mk are:

  1) For includes: incdirs-y, incdirs-lib-y, incdirs-<filename>-y

For example, suppose core/lib/libfoo/sub.mk contains the following:

  # All source files declared in $(srcs-y) in this sub.mk will
  # have -Icore/lib/libfoo/include
  incdirs-y := include

  # All source files for the current library $(libname) will be built
  # with -Icore/lib/libfoo/include/baz (even files that are in other
  # directories)
  incdirs-lib-y := include/baz

  # In addition to the above, bar.c will be compiled with
  # -Icore/lib/libfoo/include/bar
  incdirs-bar.c-y := include/bar

  2) For CPP flags: cppflags-lib-y

For example, to add -DLIBFOO to all the source files that belong to the same
library, add this to any of the sub.mk files:

  cppflags-lib-y := -DLIBFOO
Add build option: WITH_CRYPTO=openssl

Enables building the OpenSSL crypto provider. Currently, only the big numbers
functions are implemented, so the cryptographic layer is non-functional when
WITH_CRYPTO=openssl. All cryptographic services should return
TEE_ERROR_NOTIMPLEMENTED.
Default is WITH_CRYPTO=tomcrypt.

Usage example:
  $ export CROSS_COMPILE=arm-linux-gnueabihf-
  $ export PLATFORM=vexpress PLATFORM_FLAVOR=fvp
  $ export WITH_CRYPTO=openssl
  $ make