Add ReflectCore.Variant, readVariant, writeVariant

Code gets even more messy...