vo_opengl: reserve 4 texture units for video instead of 3

Video has up to 4 textures, if you include obscure formats with alpha.
This means alpha formats could always overwrite the first scaler
texture, leading to corrupted video display. This problem was recently
brought to light, when commit 571e697 started to explicitly unbind all 4
video textures, which broke rendering for non-alpha formats as well.

Fix this by reserving the correct number of texture units.
vo_opengl: cosmetics/fix typos
stream_lavf: support more libavformat protocols
stream_lavf: don't duplicate list of rtmp protocols

Assume a rtmp prefix means rtmp instead.
vdpau: drop required/deprecated access to a libavcodec struct field

Before the bitstream_buffers field was deprecated, you had to free it,
otherwise you would leak memory.

(Although vdpau.c uses a new API, they managed to introduce a new
deprecation this quickly. This is a complaint.)

This introduces a memory leak of 12 bytes per file on every file on some
_older_ libavcodec versions. This is minor enough that I don't care.