Cleanup loading/unloading of a TA

* A TA is only loaded via tee-supplicant, directly supplying a
  pointer to the TA binary is not supported any longer.
  This requires and update to the client lib to avoid leaking
  shared memory.
* The shared memory used to load the TA is freed as soon as the
  TA have been loaded into secure memory
* Divides tee_ta_init_session() into sevaral functions
* Divides tee_ta_close_session() into two functions
* Divides tee_ta_load() into several functions with one
  separate function for signature verification
* Removes some unused code for kernel TAs
* Removes the option to lock/unlock a TA is only used by kernel
  TAs which we don't support any longer.
* Removes the static global tee_rs. Switch to use Thread Local
  Storage pointer provided by the thread handler.