Expose the "main thread" to c++

This way, the UI part of the code doesn't need to know anything about threading, and we can ensure that "completion blocks" and such are always called on the main thread.

(c++ event loop isn't really tested too much yet, just wanted to show the concept of implementing a c++ class in objc - ObjcEventLoop.mm).