Cleanup AVCaptureSession on ZXCapture dealloc

Remove AVCaptureInputs and AVCaptureOutputs from AVCaptureSession on ZXCapture dealloc to prevent delays when those same inputs and outputs are need for further scanning or other frameworks etc.
keep AVCaptureSession start/stop in main thread
Treat warnings as errors
Only un-premultiply if we need to

If `alpha` is 0xFF (255) then un-premultiplying does nothing to the
value. So in that case, let’s just not do the work. This is a huge
improvement when the image being scanned doesn’t have any alpha
information.
Cache values that are accessed a lot

This helps performance somewhat because accessing the property each
time through the loop adds a fair amount of overhead given these loops
are over the entire image.
Access the internal array through the ivar

This helps perf somewhat because these methods are called a lot
throughout the processing of an image. Accessing the array using the
ivar rather than the property means no ObjC overhead.
Merge pull request #171 from sveltema/master

Cleanup AVCaptureSession on ZXCapture dealloc
Merge pull request #179 from jasonprado/master

Treat warnings as errors
Merge pull request #184 from mattjgalloway/perf_improvements

Perf improvements