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

Closes #310
Merge branch 'self-impl' of https://github.com/nick29581/rfcs into nick29581-self-impl
Merge branch 'nick29581-self-impl'