Rethink Value's constructor friending to reduce boilerplate and put more of a system on it