Do not use anonymous union as it is not portable

unnamed unions are not portable to old compilers. When reloading data
ensure the heap allocation status is discarded.
annotate element struct with packing attributes to reduce entry size
remove constness from backing stores store method