Simpler functor signatures

Should avoid various issues in the future (and allow me to change the interface in a retro-compatible way).  Will also solve some bugs.

It *doesn't* break eliom and js_of_ocaml, but I will do PRs using this to simplify their signatures.

cc @jpdeplaix for omd.