use scm_take_locale_string()

let guile free the buffer
abstract "file-cache" to a #define
add responder factories for html, text, json