QRDecoder: move to consistent exception based error handling
QRDecoder: move to consistent exception based error handling

The code was inconsistently using error status return values and
exceptions. Decoded to consistently switch to exceptions as it leads to
cleaner code and is less error prone in its usage.

Note: the errors that might happen during decoding of the bit stream
are indeed exceptional (not happening in any of the black box sample
images) so this is an acceptable performance trade-off.

huycn/zxing-cpp,huycn/zxing-cpp,huycn/zxing-cpp,huycn/zxing-cpp,huycn/zxing-cpp,nu-book/zxing-cpp,nu-book/zxing-cpp,huycn/zxing-cpp,nu-book/zxing-cpp,huycn/zxing-cpp,nu-book/zxing-cpp,nu-book/zxing-cpp,nu-book/zxing-cpp,huycn/zxing-cpp,nu-book/zxing-cpp,nu-book/zxing-cpp