vp9: use proper refcounting.

Based on something similar in libav. Author is likely Anton Khirnov
<anton@khirnov.net> but I'm not sure.
vp9: split packet parsing into an AVParser.
vp9: move some entries out of VP9Block into VP9Context.

They aren't really block-related variables in the sense that they are
not block-coded, rather they are state trackers.
vp9: split last/cur_frame from the reference buffers.

We need more information from last/cur_frame than from reference
buffers, so we can use a simplified structure for reference buffers,
and then store mvs and segmentation map information in last/cur.
vp9: allocate 'b', 'block/uvblock' and 'eob/uveob' dynamically.
vp9: add a 2-pass decoding mode, and add frame-mt support.

For a random 1080p sample, decoding time went from 9.7sec (1 threads)
to 6.0sec (2 threads) and 5.2sec (4 threads) in 2-pass decoding mode.
I don't have any samples that use the parallelmode feature, but the
gains should be higher.
vp9: cosmetics.
vp9: add fate sample for parallelmode.

This disables backward probability updates, which makes the codec more
friendly for frame-level multi-threading.
vp9: add a new segmentation sample.

The old one didn't use segmentation. One uses segmentation in all frame
types (--aq-mode=1), and the other uses all segmentation features, but
only in inter frames (mbgraph).
vp9: make decode_coeffs() return value void.

It was previously int and would return error if decode_coeffs_b()
returns an error; however, that can never happen, so refactor all
that code to make all dependent functions return void also (all the
way up to decode_coeffs_sb()).