Code cleanup
Stop timer from erring when GTAGS not found

Fix ggtags-get-libpath to support ggtags-process-environment.
Fix ggtags-highlight-tag-at-point to set ggtags-project

Fix ggtags-unload-function return value meet unload-feature
requirement.
Some small fixes
Treat GTAGSROOT specially in ggtags-process-environment

to provide a way to refer to project root directory without hard
coding the absolute path.
Simplify detecting reference tags in ggtags-make-project

Show progress message in ggtags-ensure-project because gtags could
take a while in large projects.
Fix bug in ggtags-browse-file-as-hypertext
Fix three buglets
Avoid using file-truename by using relative file names

Fix ggtags-kill-file-buffers to support symbolic links.
Enhance ggtags-next/prev-mark to handle dead markers
Don't keep project information in memory forever

Duration can be customised ggtags-project-duration.
Fix expansion of GTAGSROOT in ggtags-process-environment
New command ggtags-find-file