WL#4178: Stored Routines: validation of stored routines

Abandon invalidation of stored routines based on a global integer counter which
is increased on any DDL (Cversion).
Similarly to prepared statements (WL#4165), attach a list of versions of used
objects to each stored routine and validate each routine before
execution, i.e. check that versions didn't change from the last load.
In case of a validation failure, re-load from disk and re-parse if there was an
interim DDL.
Rationale:
* the same approach applied to all composite objects
* is expected to give a performance improvement, since currently any DDL in any
threads flushes all stored procedure caches in all connections.
* this can be a simple solution to Bug#<to be added>, but will not fix other
bugs, such as BUG#33082
May be made obsolete by WL#4179: Stored Programs: validation of individual
statements.