Pure prototypes declared as private won't be visible in the inheriting program.

Until now function declarations without a definition we're still visible
in the inheriting program, so that they could be implemented there.
This is inconsistent with the usual meaning of the 'private' modifier,
and will also not work if the private function definition is inherited
from another program, because that one is invisible. Now the driver will
warn about private prototypes and treat them as private.
WIP: Updating virtually inherited programs with newer programs (#233).