Make ggtags-global-output-format buffer-local

So that let-binding ggtags-global-output-format won't fail
ggtags-abbreviate-files.
New command ggtags-view-tag-history
Use buffer-local cache for completion
Improve error handling in ggtags-view-tag-history
Provide better control over large global output
Fix sorting key in ggtags-view-tag-history

Don't set tabulated-list-sort-key in tabulated-list-entries because
the latter is called for refresh and will override buffer's local
tabulated-list-sort-key.
New command ggtags-toggle-project-read-only
Fix error `variable is void: find-tag-marker-ring'
Also run ggtags-update-tags in ggtags-global-start
Better ggtags-project-oversize-p and oversize checking