Change "struct strlist" to StrList.

Also document this rule in HACKING.md.

I consider it *wrong* to hide types with no obvious reason, especially
when I'm accessing internal fields of the struct all over the place, I
believe typedefs are good, but mostly for defining strict interfaces and
abbreviating extra-long types. Nevertheless I was flamed to death for
this and I need this code merged, so here is the change together with
relevant documentation; No, it was not obvious this was the rule.