Privatise constant validation

This means we now have an invariant with Constants - that any
Constant visible to the rest of the system (that is, with Constant.new)
is valid since validation is performed during init.