Introducing a specific bitreader error when the required bytes are not available
Removing unused argument cruft
adding a buffered/blocking bitreader