*: Replace usage of &vector[0] with vector.data()

We use &vector[0] in several places to get the pointer to vector data,
but std::vector[i] states invariant that i must be < vector.size(). If
the vector is not empty - then &vector[0] works ok. However if the
vector is empty - then the invariant is broken.

Normally it should not be a problem, since with empty vector we usually
use (&vector[0], vector.size()) pair, and for empty vector its size is
zero. In other words even if &vector[0] returns some not good pointer
with zero size that data should never be accessed. But a build of
libstdc++ could have asserts turned on and verify that i is actually <
size. For example with default install on Fedora the following program
with plain select()

    from golang import select
    select()

crashes with assert triggered on the breakage of that invariant

    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/lib64/libthread_db.so.1".
    /usr/include/c++/10/bits/stl_vector.h:1042: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = golang::_selcase; _Alloc = std::allocator<golang::_selcase>; std::vector<_Tp, _Alloc>::reference = golang::_selcase&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__builtin_expect(__n < this->size(), true)' failed.

    Program received signal SIGABRT, Aborted.
    0x00007ffff7e22a25 in raise () from /lib64/libc.so.6
    (gdb) bt
    #0  0x00007ffff7e22a25 in raise () from /lib64/libc.so.6
    #1  0x00007ffff7e0b895 in abort () from /lib64/libc.so.6
    #2  0x00007fffea638d6d in std::__replacement_assert (__condition=0x7fffea63ea88 "__builtin_expect(__n < this->size(), true)",
        __function=0x7fffea63eab8 "std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = golang::_selcase; _Alloc = std::allocator<golang::_selcase>; std::vector<_Tp, "..., __line=1042, __file=0x7fffea63ebe8 "/usr/include/c++/10/bits/stl_vector.h")
        at /usr/include/c++/10/x86_64-redhat-linux/bits/c++config.h:2552
    #3  std::vector<golang::_selcase, std::allocator<golang::_selcase> >::operator[] (this=<synthetic pointer>, __n=0)
        at /usr/include/c++/10/bits/stl_vector.h:1042
    #4  std::vector<golang::_selcase, std::allocator<golang::_selcase> >::operator[] (__n=0, this=<synthetic pointer>)
        at /usr/include/c++/10/bits/stl_vector.h:1040
    #5  __pyx_pf_6golang_7_golang_6pyselect (__pyx_self=<optimized out>, __pyx_v_pycasev=<optimized out>) at golang/_golang.cpp:7930
    #6  __pyx_pw_6golang_7_golang_7pyselect (__pyx_self=<optimized out>, __pyx_args=<optimized out>, __pyx_kwds=<optimized out>) at golang/_golang.cpp:7284
    #7  0x00007ffff7bceeab in cfunction_call_varargs (func=<built-in function pyselect>, args=(), kwargs=0x0)
        at /usr/src/debug/python3-3.8.10-1.fc32.x86_64/Objects/call.c:743
    ...

-> Fix it all via replacing &vector[0] with vector.data() everywhere.

No need to add new test since select() is used by test_blockforever()
and running that test on Fedora was crashing as well.

/reviewed-by @jerome
/reviewed-at !22
102 jobs for master in 0 seconds (queued for 1 second)
Status Job ID Name Coverage
  External
passed Pygolang.UnitTest-Master.Python2

00:01:36

passed Pygolang.UnitTest-Master.Python2

00:04:29

passed Pygolang.UnitTest-Master.Python2

00:01:56

passed Pygolang.UnitTest-Master.Python2

00:01:41

passed Pygolang.UnitTest-Master.Python2

00:01:53

passed Pygolang.UnitTest-Master.Python2

00:01:51

passed Pygolang.UnitTest-Master.Python2

00:02:03

passed Pygolang.UnitTest-Master.Python2

00:02:02

passed Pygolang.UnitTest-Master.Python2

00:02:01

passed Pygolang.UnitTest-Master.Python2

00:01:49

passed Pygolang.UnitTest-Master.Python2

00:02:02

failed Pygolang.UnitTest-Master.Python2

00:01:28

passed Pygolang.UnitTest-Master.Python2

00:01:39

failed Pygolang.UnitTest-Master.Python2

00:00:21

failed Pygolang.UnitTest-Master.Python2

00:00:27

failed Pygolang.UnitTest-Master.Python2

00:00:20

failed Pygolang.UnitTest-Master.Python2

00:00:19

failed Pygolang.UnitTest-Master.Python2

00:00:29

failed Pygolang.UnitTest-Master.Python2

00:00:21

failed Pygolang.UnitTest-Master.Python2

00:00:33

failed Pygolang.UnitTest-Master.Python2

00:00:29

failed Pygolang.UnitTest-Master.Python2

00:00:29

failed Pygolang.UnitTest-Master.Python2

00:00:30

failed Pygolang.UnitTest-Master.Python2

00:00:28

failed Pygolang.UnitTest-Master.Python2

00:15:12

passed Pygolang.UnitTest-Master.Python2

00:02:06

passed Pygolang.UnitTest-Master.Python2

00:01:37

passed Pygolang.UnitTest-Master.Python2

00:01:37

passed Pygolang.UnitTest-Master.Python2

00:01:59

passed Pygolang.UnitTest-Master.Python2

00:01:57

passed Pygolang.UnitTest-Master.Python2

00:02:12

passed Pygolang.UnitTest-Master.Python2

00:01:49

passed Pygolang.UnitTest-Master.Python2

00:01:27

failed Pygolang.UnitTest-Master.Python2

00:01:57

passed Pygolang.UnitTest-Master.Python2

00:01:58

failed Pygolang.UnitTest-Master.Python2

00:01:54

passed Pygolang.UnitTest-Master.Python2

00:02:06

passed Pygolang.UnitTest-Master.Python2

00:01:42

passed Pygolang.UnitTest-Master.Python2

00:01:49

passed Pygolang.UnitTest-Master.Python2

00:01:50

passed Pygolang.UnitTest-Master.Python2

00:02:01

passed Pygolang.UnitTest-Master.Python2

00:02:02

passed Pygolang.UnitTest-Master.Python2

00:01:59

passed Pygolang.UnitTest-Master.Python2

00:02:03

failed Pygolang.UnitTest-Master.Python2

00:02:27

passed Pygolang.UnitTest-Master.Python2

00:02:00

passed Pygolang.UnitTest-Master.Python2

00:02:03

passed Pygolang.UnitTest-Master.Python2

00:01:52

passed Pygolang.UnitTest-Master.Python2

00:01:51

passed Pygolang.UnitTest-Master.Python2

00:37:58

passed Pygolang.UnitTest-Master.Python2

00:02:08

failed Pygolang.UnitTest-Master.Python2

00:02:32

failed Pygolang.UnitTest-Master.Python2

00:01:56

passed Pygolang.UnitTest-Master.Python2

00:28:52

passed Pygolang.UnitTest-Master.Python2

00:01:28

passed Pygolang.UnitTest-Master.Python2

00:02:19

passed Pygolang.UnitTest-Master.Python2

00:01:55

passed Pygolang.UnitTest-Master.Python2

00:04:47

failed Pygolang.UnitTest-Master.Python2

00:02:07

failed Pygolang.UnitTest-Master.Python2

00:03:00

failed Pygolang.UnitTest-Master.Python2

00:01:48

failed Pygolang.UnitTest-Master.Python2

00:02:04

passed Pygolang.UnitTest-Master.Python2

00:02:09

passed Pygolang.UnitTest-Master.Python2

00:01:42

passed Pygolang.UnitTest-Master.Python2

00:02:00

passed Pygolang.UnitTest-Master.Python2

00:01:36

passed Pygolang.UnitTest-Master.Python2

00:01:33

failed Pygolang.UnitTest-Master.Python2

00:02:39

passed Pygolang.UnitTest-Master.Python2

00:01:57

passed Pygolang.UnitTest-Master.Python2

00:01:29

failed Pygolang.UnitTest-Master.Python2

00:02:04

passed Pygolang.UnitTest-Master.Python2

00:01:36

passed Pygolang.UnitTest-Master.Python2

00:01:48

passed Pygolang.UnitTest-Master.Python2

00:01:53

passed Pygolang.UnitTest-Master.Python2

00:01:36

failed Pygolang.UnitTest-Master.Python2

00:02:43

passed Pygolang.UnitTest-Master.Python2

00:01:42

failed Pygolang.UnitTest-Master.Python2

00:03:03

failed Pygolang.UnitTest-Master.Python2

00:02:30

passed Pygolang.UnitTest-Master.Python2

00:02:22

passed Pygolang.UnitTest-Master.Python2

00:01:30

passed Pygolang.UnitTest-Master.Python2

00:01:27

passed Pygolang.UnitTest-Master.Python2

01:26:54

passed Pygolang.UnitTest-Master.Python2

00:56:12

passed Pygolang.UnitTest-Master.Python2

00:01:42

passed Pygolang.UnitTest-Master.Python2

00:01:56

failed Pygolang.UnitTest-Master.Python2

00:01:28

passed Pygolang.UnitTest-Master.Python2

00:01:36

passed Pygolang.UnitTest-Master.Python2

00:01:21

passed Pygolang.UnitTest-Master.Python2

00:01:31

passed Pygolang.UnitTest-Master.Python2

00:01:54

passed Pygolang.UnitTest-Master.Python2

00:01:23

passed Pygolang.UnitTest-Master.Python2

00:05:18

passed Pygolang.UnitTest-Master.Python2

00:01:26

passed Pygolang.UnitTest-Master.Python2

00:01:44

passed Pygolang.UnitTest-Master.Python2

00:01:25

passed Pygolang.UnitTest-Master.Python2

00:01:46

passed Pygolang.UnitTest-Master.Python2

00:01:25

passed Pygolang.UnitTest-Master.Python2

00:01:29

passed Pygolang.UnitTest-Master.Python2

00:01:44

passed Pygolang.UnitTest-Master.Python2

00:01:42

passed Pygolang.UnitTest-Master.Python2

00:01:24