fix(annotations): normalize annotations on the fly

A loader should not have to explicitly normalize the annotation storage
in order for annotation manipulation to work properly. This fix embeds
the normalization code inside the annotation manipulation apis,
ensuring that things work regardless of the presence of a loader.