EbmlSInteger: avoid undefined behavior when reading
EbmlSInteger: avoid undefined behavior when reading

Left-shifting of negative numbers is undefined behavior. So let's do
unsigned shifts of value with all bits set and convert that to signed
via interpreting it as 2's complement numbers in a defined way.

The shift-of-negative-numbers is caught by code compiled by
gcc's/clang's "undefined behavior sanitizer".

Matroska-Org/libebml,Matroska-Org/libebml