now all class inherit from base "object" class and only those that wrap an object defined in <CL/cl.h> inherit from "wrapper" class, which gives them a smart pointer to that object.
updated readme to reflect the fact that the program class no longer creates kernel objects.