Introduce the generic TEE driver

This commit implements a generic TEE driver to support ARM TrustZone in linux.
Initially it's a basic component in OP-TEE implementation. But it attempts to be
a common and compatible TEE driver.

Currently this driver contains two sub modules. One is the general core framework
which is arch-independent. And another is a specific driver to support TrustZone
on various ARM architecture.