Nettle: Reference the programs being inherited.

Make sure that there's a local symbol in the parent for the
programs that we inherit. Otherwise the parent_identifier in
the generated inherit may point back to some later override.

This happens frequently when inheriting the State class.

This fixes infinite recursion in eg Program.all_inherits()
when called with several of the Crypto and Nettle classes.
Save 4 bytes on the struct identifier struct size
Do not consider a function to be implemented if it's just a prototype.

This changes typechecking in an incompatible manner.

Currently the SSL code does not compile.
Revert "Do not consider a function to be implemented if it's just a prototype."

This reverts commit 1881b02893eb681b6b18b9363410364509abb2ec.

It did not really work, since the 'implements' function is used in other places
where the prototype checking should not really be done.

As an example, defining a variable that was of type A to be type B.

It would not work if B had prototypes that were in A.