We were not detecting declaring multiple interfaces to the same procedure.
Also, we were not handling the initialization of entitiies where the associated
Symbol had previously had errors.
I added a boolean to ProcEntityDetails to indicate if set_interface() had been
called. I then checked that boolean when calling set_interface() and emitting
an error message if the interface was already set.
Also, in situations where we were emitting error messages for symbols, I set
the Error flag on the Symbol. Then when performing initialization on the
Symbol, I first check to see if the Symbol had an error.
This could be CHECK(!interface_.IsInterfaceSet()).