libplatsupport: Refactor HPET to use constant register offsets
libplatsupport: Refactor HPET to use constant register offsets

Previously the HPET driver stored pointers to different registers in its run time
data structure. This both wastes memory for no reason, and is inefficient as the
compiler has no way to optimize the fact that they are constant offsets from
each other. This commit saves a single base pointer and uses constant offsets
for the different reigsters. In addition we use explicit compiler barriers as
casting between volatile and non volatile pointers is undefined behaviour
according to the C standard

agacek/util_libs,agacek/util_libs,agacek/util_libs,agacek/util_libs