Refactor snapshot support

The snapshot support needs to be split between output- and config-related
functions to get the layering between shared.c and ui-*.c right. There
is also some codestyle-issues which needs fixing to make the snapshot
functions more similar to the rest of the cgit code.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
diff --git a/cgit.h b/cgit.h
index 295441b..e2d5126 100644
--- a/cgit.h
+++ b/cgit.h
@@ -177,10 +177,18 @@
 	struct cgit_page page;
 };
 
+struct cgit_snapshot_format {
+	const char *suffix;
+	const char *mimetype;
+	write_archive_fn_t write_func;
+	int bit;
+};
+
 extern const char *cgit_version;
 
 extern struct cgit_repolist cgit_repolist;
 extern struct cgit_context ctx;
+extern const struct cgit_snapshot_format cgit_snapshot_formats[];
 extern int cgit_cmd;
 
 extern void cgit_prepare_context(struct cgit_context *ctx);