Add type hint struct

Adds a zero-sized type hint that can be used to access static methods that don't mention `Self`. For example:

~~~rust
trait A {
    fn a(_: ForType<Self>) -> uint;
}

impl A for int {
    fn a(_: ForType<int>) -> uint { 6 }
}

assert_eq!(A::a(ForType::<int>), 6);
~~~

Previously `Option<Self>` was usually used, but this makes the intent clearer.