DIP60: add semantics for @nogc

As the title says. Even does inference. Affects the builtin functions, which affects druntime and phobos.

Unfortunately, this and the following two need to be pulled at the same time before it'll work:

https://github.com/D-Programming-Language/druntime/pull/773
https://github.com/D-Programming-Language/phobos/pull/2105

See also http://wiki.dlang.org/DIP60