Introduce a Linux style initcall mechanism

To use it, simply add something like:

service_init(server_init_callback);

The callback regsitered will be invoked at the end of init_teecore().
Now we have 2 priority service_init and driver_init. The callback
regsitered in service level will be invoked first.

Signed-off-by: SY Chiu <sy.chiu@linaro.org>
SE API: Add a script to setup test environment

Signed-off-by: SY Chiu <sy.chiu@linaro.org>
SE API: SE Manager and Reader implementation

- Introduce an interface for developers to write reader driver
  (core/include/tee/se/reader/interface.h)
- A sample reader driver implementation: PC/SC passthru reader
  (core/tee/se/reader/passthru_reader)
- Currently supported machine is qemu-virt (compile with --with-pcsc-passthru)
- A selftest STA is included to test the functionality of SE Reader
  (core/arch/arm32/sta/se_api_self_tests.c)
- To enable SE API, add "WITH_SE_API := y" in your platform config

Signed-off-by: SY Chiu <sy.chiu@linaro.org>
SE API: Session, Protocol and Channel implementation

- Implement Session which maintains the connection between TA and a
  specific SE Reader
- Implement ISO7816 transport layer protocol, and Channel management
- Implement Utilities to handle AID(ISO7816-3) and APDU(ISO7816-4)
- Brunch of self tests to velidate functionality of each module

Signed-off-by: SY Chiu <sy.chiu@linaro.org>
SE API: Add design document

Signed-off-by: SY Chiu <sy.chiu@linaro.org>