Fix build with clang 3.4

This fixes various build failures with clang 3.4, such as hardcoded
assumptions about clang based on clang 3.3, making sure we don't pass
unnamed types to templates, and making sure snprintf is #undef-ed before
being touched by string_util.h.

Change-Id: I0ff8097881adfc11c48adfdf5a74848d7ddd6944
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>