program: moved program model to program class as unit

program class constructor now creates a program unit for the main
routine; and added a access function to obtain the pointer to the
program unit of the main routine