Allow relative paths for cgit_cache_root

Make sure we chdir(2) back to the original getcwd(2) when a page
has been generated. Also, if the cgit_cache_root do not exist,
try to create it.

This is a feature intended to ease testing/debugging.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
diff --git a/cache.c b/cache.c
index 39e63a5..91b89a6 100644
--- a/cache.c
+++ b/cache.c
@@ -45,6 +45,10 @@
 {
 	char *path;
 
+	path = fmt("%s", cgit_cache_root);
+	if (mkdir(path, S_IRWXU) && errno!=EEXIST)
+		return 0;
+
 	if (!cgit_query_repo)
 		return 0;