nvc0: refactor video buffer management logic into nouveau_vp3

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
nvc0: standardize on using #if for NVC0_DEBUG_FENCE

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
nvc0: move nvc0_decoder into nouveau, rename to nouveau_vp3_decoder

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
nvc0: move bsp param-filling logic into nouveau

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
nvc0: move vp param filling logic into nouveau

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
nvc0: move some of the simpler decoder functions into nouveau

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
nvc0: move firmware loading functions to nouveau

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
nvc0: move video param and format support functions to nouveau

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
nv50: separate video logic from noalloc

The upcoming vp3 logic will want the video layout, but allocated by the
miptree.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
nv50: add vp3/vp4 support for mpeg2/vc1

h264/mpeg4 remain disabled for pre-nvc0, there's some minor
bug/difference which causes the decoding to hang after some frames.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>