Pass error correction level provided by the user to the encoder. Fixes #60.
Merge pull request #61 from creswick/ticket-60

Pass error correction level provided by the user to the encoder. Fixes #60
Fixes potential memory leak and lint warning with displayHandler
No need to fully qualify camera type
Make button local variable
Only init camera if surface holder is valid
Add @NonNull qualifier to holder when initializing camera and update error message
Make more methods synchronized
Change stopRunning to handle case where camera and callback nullness may differ
DecodeThread has started check is redundant
Change conditional to make it easier to read
redundant, call in onPause
* Move receiver to DecodeThread
* Let CameraManager handle Camera.previewCallback to simplify message sending between handlers
* Remove unused millisecond timeout in qrlib Receiver
Give progress update messages an id
layout weight not necessary for surfaceview
Make displayUpdate handler static to remove the potential leak found by lint
Remove hasSurface flag and manage camera open/close from surface callbacks.
Note we have to force surface to get destroyed onPause otherwise application won't destroy surface whenever it exits from the power button
Open camera on new thread so PreviewCallbacks are handled off the main UI thread
Rename interface to be agnostic to camera
Create class to serve images to decodeQRCodes from an Iterable object