Reentrancy fixes

Before this patch: The normal world was only allowed to enter
secure world with one thread at a time.

After this patch: The normal world may try to enter secure world
with as many threads as it likes, secure world will return busy
when no more threads can be allowed. Secure world still only allows
one active thread at a time, but during RPC another thread may enter
and do some work. This is needed for cancellation to work.

* 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

This patch depends on the "Allow parallel entries to secure world"
patch in optee_linuxdriver.
plat-orly2 and plat-cannes merged in plat-stm

PLATFORM_FLAVOR is used to distinguish orly2 and cannes

Change-Id: Iaed89451f704120e29b0b0adb83627f11bf9df48
Cosmetic fixes for build output

By default, the OP-TEE build shows abbreviated output similar to the Linux
kernel. This commit fixes a number of deviations/inconsistencies.

- Always print a command in uppercase, followed by the target file.
- Make sure commands and file paths are nicely aligned, with two leading spaces
to make command output/errors better stand out.
- Remove some duplicate slashes in file paths. We use the following rule:
variables that hold directory names such as $(arch-dir) or $(platform-dir)
always have a trailing slash. The 'subdirs' and 'incdirs' variables used in
sub-makefiles are an exception because doing otherwise would needlessly
clutter the sub-makefiles.