Overhauls render() for clarity and support for optional escaping

E.g. {name} or {r:name} are not escaped ("raw"). {e:name} is HTML escaped. Organization makes it trivial to add different models of escaping or change the default