ARROW-10765: [Rust] Optimize take string for non-null arrays
ARROW-10765: [Rust] Optimize take string for non-null arrays

Simarly as in https://github.com/apache/arrow/pull/8795 we can optimize take for strings for non-null arrays as well.

```
Benchmarking take str 512: Collecting 100 samples in estimated 5.0028 s (3.0M it                                                                                take str 512            time:   [1.6526 us 1.6593 us 1.6663 us]
                        change: [-42.763% -42.500% -42.200%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 5 outliers among 100 measurements (5.00%)
  4 (4.00%) high mild
  1 (1.00%) high severe

Benchmarking take str 1024: Collecting 100 samples in estimated 5.0104 s (1.6M i                                                                                take str 1024           time:   [2.9526 us 2.9550 us 2.9576 us]
                        change: [-39.657% -39.134% -38.514%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 13 outliers among 100 measurements (13.00%)
  13 (13.00%) high severe

Benchmarking take str nulls 512: Collecting 100 samples in estimated 5.0001 s (1                                                                                take str nulls 512      time:   [3.2271 us 3.2319 us 3.2371 us]
                        change: [-30.930% -30.716% -30.495%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 4 outliers among 100 measurements (4.00%)
  4 (4.00%) high mild

Benchmarking take str nulls 1024: Collecting 100 samples in estimated 5.0320 s (                                                                                take str nulls 1024     time:   [7.6034 us 7.6135 us 7.6240 us]
                        change: [-22.503% -22.027% -21.564%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 4 outliers among 100 measurements (4.00%)
  1 (1.00%) low mild
  3 (3.00%) high mild
```

Closes #8799 from Dandandan/opt_string

Authored-by: Heres, Daniel <61924dac3230581b78b62e9e0cd0f8203281db27@gmail.com>
Signed-off-by: Neville Dipale <4e1ab218b24f06847d563ff3773c7517c139f863@gmail.com>

laurentgo/arrow,icexelloss/arrow,laurentgo/arrow,laurentgo/arrow,wesm/arrow,laurentgo/arrow,kou/arrow,kou/arrow,kou/arrow,cpcloud/arrow,laurentgo/arrow,cpcloud/arrow,cpcloud/arrow,apache/arrow,wesm/arrow,icexelloss/arrow,apache/arrow,kou/arrow,wesm/arrow,cpcloud/arrow,icexelloss/arrow,laurentgo/arrow,apache/arrow,apache/arrow,apache/arrow,wesm/arrow,apache/arrow,icexelloss/arrow,wesm/arrow,kou/arrow,laurentgo/arrow,apache/arrow,wesm/arrow,apache/arrow,icexelloss/arrow,wesm/arrow,cpcloud/arrow,cpcloud/arrow,laurentgo/arrow,kou/arrow,cpcloud/arrow,icexelloss/arrow,kou/arrow,laurentgo/arrow,wesm/arrow,kou/arrow,cpcloud/arrow,cpcloud/arrow,cpcloud/arrow,laurentgo/arrow,wesm/arrow,kou/arrow,kou/arrow,wesm/arrow,kou/arrow,icexelloss/arrow,icexelloss/arrow,kou/arrow,cpcloud/arrow,icexelloss/arrow,apache/arrow,wesm/arrow,apache/arrow,apache/arrow,cpcloud/arrow,icexelloss/arrow,icexelloss/arrow,icexelloss/arrow,cpcloud/arrow,apache/arrow,wesm/arrow,icexelloss/arrow,wesm/arrow,wesm/arrow,kou/arrow,laurentgo/arrow,laurentgo/arrow,cpcloud/arrow,laurentgo/arrow,apache/arrow,apache/arrow,kou/arrow,laurentgo/arrow,laurentgo/arrow,icexelloss/arrow