Implement goto declaration.

Partially fix #134.

This does not implement "goto definition" aka cross translation unit gotos.

It works on variables, functions, structure fields, in fact, this can jump to nearly everything that has a definition.

How-to use: <C-]> to jump, <C-T> to go back. This of course supports several jumps :).

What's missing: documentation, more test, maybe an option to use it, performance evaluation, and users!

It goes without saying that only libclang users can use it.

I'm not planning to merge this as-is, but it should be considered as stable and ready to use. If you encounter any issue, please report it!