bitstream: unify resetBits() and clear() methods

There's no point in having a virtual resetBits() method in the abstract class
and then not implemeent in the derived class but make a second method with
identical semantics.  What the heck?
move bitstream implementations into common
fix msvc build warnings
fix checked build warning
nal: allow the concatenated substream buffer to be re-used from frame-to-frame

this removes another malloc/free from the processing of every frame. This commit
also moves the NALList constructor to nal.cpp since it is no longer quite so
trivial. Lastly, it adds a check to prevent crashes in case one or more of the
WPP substreams had a malloc failure.
nal: nits
nal: include the start code bytes in the bounds check