symbol: fix segmentation fault at sdt_note_addr()

Because dst.d_buf must be 24 bytes long (on x86-64) while there is only
8 bytes (allocated on stack).

return address was at: 0x7fffffffdd88
dst.d_buf:             0x7fffffffdd78

And after elf64_xlatetom() executed, it called memmove() into dst.d_buf,
and overwrite return address for sdt_note_addr(), and after retq
executed it jumps to 0x0.

Signed-off-by: Azat Khuzhin <a3at.mail@gmail.com>
symbol: use actor instead of dynamically allocate array of symbols.

Like Jovi suggested, replace dynamic allocatins, by callback/actor.

I've renamed get_dso_symbols() -> read_dso_symbols(), since it really do
this.
read_dso_symbols() will call actor for every symbol/sdt note that it will
found.
And replace usage of get_dso_symbols() by read_dso_symbols() inn
parse_events_resolve_symbol() (uprobes)

This patch also fix some memory leaks (on failures), and drop some exit()
inside parse_events_resolve_symbol()

Signed-off-by: Azat Khuzhin <a3at.mail@gmail.com>