Foundational primitive types for the whole workspace. This crate sits below core rather than
inside it because core itself needs values and diagnostics, which would otherwise cycle. The
types here are wire- and disk-stable: rearranging Value or ValueType corrupts persisted data.