ui-repolist: add ability to control what repos a user see

The auth-filter works at the repository level but still shows
repositories in ui-repolist. This change allows you to limit what
a user sees based on the STDOUT of a command.

The existing filter code doesn't handle the capture of stdout, so
a new mechanism was created just for this.

Signed-off-by: Andy Doan <andy.doan@linaro.org>
diff --git a/cgit.c b/cgit.c
index 2ae8895..35dd5dc 100644
--- a/cgit.c
+++ b/cgit.c
@@ -236,6 +236,8 @@
 		ctx.cfg.owner_filter = cgit_new_filter(value, OWNER);
 	else if (!strcmp(name, "auth-filter"))
 		ctx.cfg.auth_filter = cgit_new_filter(value, AUTH);
+	else if (!strcmp(name, "allowed-repos-cmd"))
+		ctx.cfg.allowed_repos_cmd = xstrdup(expand_macros(value));
 	else if (!strcmp(name, "embedded"))
 		ctx.cfg.embedded = atoi(value);
 	else if (!strcmp(name, "max-atom-items"))