Allow the `Self` type to be used in impls.

Closes #310 

See also some discussion in [discuss](http://discuss.rust-lang.org/t/pre-rfc-allow-self-in-impls/1016/4) and discussion in the [Rust issue tracker](https://github.com/rust-lang/rust/issues/12600).