[RFC] VideoCommon: Datareader

This branch tries to reduce the global state within our Fifo - OpcodeDecoder - VertexLoader - VertexManager queue. All globals between this stages are removed and replaced by function arguments.
Also a new DataReader helper class was created for easier parsing of binary streams
This one confuses me a lot (altho most of the comments might be out of scope for this PE):
- the comment says "Gets the pointer" but the method is void.
- the method name is "SetSomething" but doesn't get a value to be set as parameter.
- ...instead it relies on global state from elsewhere (which is probably the closest to the scope of this PR).

Think theres anything we can do to improve this?