Make callbacks virtual members of the OTSContext

Instead of the Set* functions, clients should just override the virtual methods, as suggested by Behdad.

I dropped the user data stuff as I think clients now have more freedom to handle it in more elegant ways.