frameworks/base: Fix build in ISO C++11 mode

Fix various incompatibilities with ISO C++11:
- Assumption that char16_t is defined to uint16_t
- constexpr usage
- macro constructs that could be interpreted as string literals
- enum typesafety

Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Chet Kener <Cl3Kener@gmail.com>

Conflicts:
	core/jni/android_os_FileUtils.cpp

Signed-off-by: Chet Kener <Cl3Kener@gmail.com>
Work around uint16_t vs. char16_t confusion

Change-Id: I188e5a82b2dba821710eaea85d6cbef2ae004ce9
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
Signed-off-by: Chet Kener <Cl3Kener@gmail.com>
frameworks/base: Fix aliasing violations

Fix violations of strict aliasing rules

Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Chet Kener <Cl3Kener@gmail.com>