TST/PERF: optimize tm.makeStringIndex
As a performance junkie I benchmark a lot and that involves frequent creation of temporary arrays of significant sizes.  I couldn't but notice that `tm.makeStringIndex` is somewhat slow in that regard and this PR should fix that.

It also does:

```
* add tm.rands_array(nchars, size) function to generate string arrays

* add tm.randu_array(nchars, size) function to generate unicode arrays

* replace [rands(N) for _ in range(X)] idioms:
  - with makeStringIndex in benchmarks to maintain backward compatibility
  - with rands_array in tests to maintain 1-to-1 type correspondence
```
