Make Values always operate on canonical types. We will add a wrapper class to
provide optional qualifiers at a later stage. Also, add a new virtual method
to the Value class, getCanonicalType(), to get the canonical type of the value.