Add "function name macro"

This RFC proposes the addition of a `function!` macro that expands to the function it's used in.  This will greatly help error reporting.

[Rendered View](https://github.com/mitsuhiko/rfcs/blob/master/text/0000-function-name-macro.md)
`function!()` does strike me as too generic. I much prefer the descriptiveness of `function_name!()`. I don't mind the underscore because ideally you'd have this wrapped in some more general error handling device.