mustache: allow iterating over a key-value hash with {{@}} for the key and {{.}} for the value

Mustache template improvement:

* allows iterating over a hash, not just a list
* the value is `{{.}}` just like with lists
* the key is `{{@}}` but could be some other special string, e.g. `@key`...
* when iterating over lists, the key behavior is undefined but currently is same as the value
* acceptance test included