Don't pass needless arguments to Declaration Checks.

ConstSpec and constSpecView already have access to Iota. They don't
need it again. Also, Declarations don't need their symbol table,
because they already have it as a field. This was necessary for
package-level declarations that needed their file-level symbol table,
which would not be passed via a recursive call from a declaration in a
separate file. For Declarations that appear in blocks,
DeclarationStatement will need to set their syms field. Not a problem.
Add TestConstFolding.
Fix a bug when folding iota.

ConstSpecs.Values may be shared among multiple ConstSpecs. This
happens when one spec in a const block has expressions and subsequent
ones do not. Check cannot overwrite the values in the slice; it may
contain iotas, and they may evaluate to different values for each
spec. Instead, each constSpecView has its own Value field that
contains its folded value.