htable: iterator implementation for hash tables

- new functions:
    - sht_iterator_start(iname, hname)
    - sht_iterator_next(iname)
    - sht_iterator_end(iname)
- iname is a string to identify the iterator
- hname is the name of a hash table
- note that the slot is left locked by sht_iterator_next(), therefore
  there must be no update to the hash table content in between
  sht_iterator_start() and sht_iterator_end()
- sht_iterator_end() must be called for each sht_iterator_start() with
  the same iterator name
- internally can be up to 4 iterators at one time, they can have different names
- the current item in the iterator is accessible via:
    - $shtitkey(iname)
    - $shtitval(iname)
- example

sht_iterator_start("i1", "h1");
while(sht_iterator_next("i1")) {
    xlog("h1[$shtitkey(i1)] is: $shtitval(i1)\n");
}
sht_iterator_end("i1");
htable: documentation for iterator functions