Manual merge new features from curtinmartis repo

I added a few new features to make life easier in NRML:

1. CameraHost now has a ```pictureTaken()``` callback that occurs on the main thread. This was done so that we could show the confirmation panel after the picture is actually taken (was showing up early before).

2. CameraFragment now has a ```setFlashMode(String flashMode)``` method to immediately set the flash mode on the CameraView's current camera. This was added because while some devices do not automatically turn flash on when autofocus occurs, others do. Now you can just set the flash mode to ON right after the shutter click, and then set it back to OFF after the picture is taken.

3. CameraFragment now has a ```reinitializePreview()``` method that destroys the preview surface, releases the camera, and restarts the preview. This was originally made to force another call to ```adjustPreviewParameters()``` in CameraHost to work out flash issues, but the previous enhancement rendered this unnecessary for now.