Debug callback

Adds a [COScript setDebugController] method, which lets you pass in an object that gets to deal with internal debug() calls.

If you don't do anything, this debug output ends up going to NSLog as before.

If you give it a debug controller object, its output:args: method will get called for each debug message. This lets you route the log output differently.