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
64 is a reasonable limit, but in case we'd like to override it the ifndef will help. If we end up with mutexes in dynamic structures the number of needed mutexes will likely depend on how much memory is available. It could be nice to be able configure a larger number for some platforms.