Fix a bug reported by zicong.liu.nju@gmail.com

The starting line of each function was computed from NodeKind_FunctionDecl.
This could be imprecise if the function declaration is breaked into several lines.

This problem is addressed by getting the location of the first token of a
FunctionDecl node.