Fix #6294: Full HW Random Generator

Change-Id: I9babada92991c646d844a25af175150d530a8ddb
Reviewed-on: https://gerrit.st.com/11597
Reviewed-by: Jean-Michel DELORME <jean-michel.delorme@st.com>
Tested-by: Jean-Michel DELORME <jean-michel.delorme@st.com>
Reviewed-by: Jocelyn RICARD <jocelyn.ricard@st.com>
Reviewed-by: Pascal BRAND <pascal.brand@st.com>

Conflicts:
	core/arch/st231/plat-stm/rng_support.c
Fix #6323: A failing RSA decode leads to panic

Change-Id: Ia4762f076922338f280d431f104b653e731bf64f
Reviewed-on: https://gerrit.st.com/11598
Reviewed-by: Jean-Michel DELORME <jean-michel.delorme@st.com>
Tested-by: Jean-Michel DELORME <jean-michel.delorme@st.com>
Tested-by: Jocelyn RICARD <jocelyn.ricard@st.com>
Reviewed-by: Pascal BRAND <pascal.brand@st.com>

Update wrt comments from review

Fix returned error when the mode is not ok
Fix TA build error

This fixes a bug introduced by commit 4334e8d. In ta_dev_kit.mk, out-dir must
be set to '.' and not left empty when output directory (O=) is not specified.
Otherwise, when building a trusted app, the compile rule will have an unwanted
leading slash (result from the expansion of $(out-dir)/$(...) in compile.mk).
Error is:

make[1]: Entering directory `/home/jerome/tmp/lcu14_optee_hello_world/ta'
  CC      /hello_world_ta.o
hello_world_ta.c:101:1: fatal error: opening dependency file /.hello_world_ta.o.d: Permission denied
 }
 ^
compilation terminated.
Generic secure time layer

Provided a time source api in order to let soc vendors implement their
own secure counter

- Moved platform-dependent code out of tee_time.c to make it a generic
  time layer.
- Added an abstract layer for platforms to implement their own secure
  time source.
- Implemented arm cntpct as one of secure time source.
- Moved rtt0 related time operation from tee_time.c to tee_time_rtt.c,
  act as another secure time source.
- Added tee_time_ree.c for the plaform that doesn't have secure time
  source. In this case, using ree time as secure time source.
Implemented wait in normal world

Instead of busy waiting in secure world, it is more efficient to wait
in normal world such that HLOS can schedule another task to execute
while waiting

- Added a new RPC command to wait in linux driver
- Remove wait_specific() hook in time_source, it seems can be a generic
  function.
- This patch depends on "Implemented wait in normal world" in
  optee_linuxdrver