Reentrancy fixes

* Adds a mutex that waits in normal world if busy
* Adds a new RPC service to wait in normal world
* Imports bitstring.h from FreeBSD to aid mutex implementation
* Adds a critical section in tee_ta_init_session
* Unmaps TA before RPC exit and maps it again on return to handle
  rescheduling of threads during RPC
* Doesn't clear a1-a3 when returning busy
* Bugfixes vector_std_smc_entry
cpsr is per cpu so the only race here is if an interrupt routine changes cpsr for svc mode, but I can't  see why we ever would allow that.

It could be that the interrupt disabling isn't needed here, but to avoid the complexity of a rescheduling in the middle of a mutex I'd rather do the disabling anyway.