[server] Add cache support for repo

Very limited attempt to add cache support for ``repo_id`` in ``server/repo-mgr.c``

Here are some problems known to me:
1. No way to destroy this ``GHashTable`` (named ``cached_repos`` in ``struct SeafRepoManagerPriv``) since I could not find out where the parent ``SeafRepoManagerPriv`` instance gets destroyed.
1. Don't want to hack into ``repo_exists_in_db``, and it seems less frequently called than ``seaf_repo_manager_get_repo``. Maybe it would be good enough to achieve our goal. However, no profiling data is available at the second.
Should use variable name 'branch' instead of 'head'.