sys_ioctl: implement a few SNDDRV_CTL_* ioctls

Currently valgrind prints lots of false positives on any alsa mixer program,
due to unimplemented VKI_SNDRV_CTL_IOCTL_TLV_READ ioctl:

==2862== Conditional jump or move depends on uninitialised value(s)
==2862==    at 0x4E72307: snd_tlv_get_dB_range (tlv.c:170)
==2862==    by 0x4E8A74D: get_dB_range (simple_none.c:1162)
==2862==    by 0x4E8A7EE: get_dB_range_ops (simple_none.c:1176)
==2862==    by 0x4E8559C: snd_mixer_selem_get_playback_dB_range (simple.c:298)
==2862==  Uninitialised value was created by a heap allocation
==2862==    at 0x4C2CD7B: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==2862==    by 0x4E8A57E: init_db_range (simple_none.c:1114)
==2862==    by 0x4E8A714: get_dB_range (simple_none.c:1159)
==2862==    by 0x4E8A7EE: get_dB_range_ops (simple_none.c:1176)
==2862==    by 0x4E8559C: snd_mixer_selem_get_playback_dB_range (simple.c:298)

The problem is that this ioctl uses flexible array member and valgrind doesn't know
how many elements of this array are initialized.

Also this patch implement 5 other VKI_SNDRV_CTL_IOCTL_* althought they are
not caused any false positives on real programs that use alsa-lib.