Introduce a more convenient notation and embrace dynamic typing.

This commit changes the way Objective-C is handled in Rust.
Objective-C is fundamentally a dynamically typed system and I feel
there is little point in going against that trend. So the only type
of an Objective-C object is now `id`.

By embracing dynamic typing, we get much cleaner APIs. Before this
change, one had to use `sel_registerName` and friends in order to
invoke simple Objective-C selectors. Now one can simply say things
like:

    let run_loop = "NSRunLoop".send("alloc", ()).send("init", ());