New EBMLRandomDataSource class

Provides a random EBML Tree
Cleanup
Updated MatroskaDocType to include v4 elements
Fixed cornercase bug:

If a datablock is retrieved which is as long as the remaining bytes in the stream, BlockLength() would return a negative value.
Cleanup