Replace CONFIG_HAS_TLS_REG with HWCAP_TLS and check for it on V6

The TLS register is only available on ARM1136 r1p0 and later.
Set HWCAP_TLS flags if hardware TLS is available and test for
it if CONFIG_CPU_32v6K is not set for V6.

Note that we set the TLS instruction in __kuser_get_tls
dynamically as suggested by Jamie Lokier <jamie@shareable.org>.

Also the __switch_to code is optimized out in most cases as
suggested by Nicolas Pitre <nico@fluxnic.net>.

Signed-off-by: Tony Lindgren <(address hidden)>
Reviewed-by: Nicolas Pitre <(address hidden)>

Change-Id: I10ec5a51e87017feaa8067cd3b278106aaea04cb
HACK stay compatible with the emulated TLS register HACK

psyke83: wrap hack into CONFIG_TLS_USERSPACE_EMUL option

Signed-off-by: Pankaj <pankaj.bharadiya@ti.com>

Change-Id: Ic9ffdf5b88445122d186c4d08e95d8f192eb30a3
recov_defconfig: Enable TLS_USERSPACE_EMUL