If GPUImagePicture is passed an empty image, create a small 2x2 image to prevent a possibly fatal error on CGContextDrawImage

The empty image passed to GPUImagePicture will trigger this error when CGContextDrawImage is called on init::

"<Error>: CGContextDrawImage: invalid context 0x0. This is a serious error. This application, or a library it uses, is using an invalid context  and is thereby contributing to an overall degradation of system stability and reliability. This notice is a courtesy: please fix this problem. It will become a fatal error in an upcoming update."

This should prevent the error altogether.
Fix static analysis warning in that new Xcode
Added GPUImageRawDataOutput and GPUImageRawDataInput to the Mac port with necessary modifications.
GPUImageVideoCamera: make class methods to determine whether front and or back facing cameras exist

The new iPod Touch doesn't have a back camera, so it's useful to determine which cameras exist before initting the GPUImageVideoCamera.

I have left instance methods of the same name so that the property getters still work, there are just class method alternatives now too.
Introduced outputTextureOptions for GPUImageOutput.

This allows to modify the texture settings of a filter to, for example, allow float-typed output textures.
Experimenting with some fixes for iOS 7 issues. This does not solve them.
Merge pull request #1046 from frankschlegel/texture-options

Introduced outputTextureOptions for GPUImageOutput.
Merge pull request #1045 from karlvr/nobackcamera

GPUImageVideoCamera: make class methods to determine which cameras exist
Merge pull request #1044 from 0x4d52/master

Add GPUImageRawDataOutput/Input to Mac port
Merge pull request #1042 from mirego/fix-static-analysis-warning

Fix static analysis warning in that new Xcode
Merge pull request #1037 from iamcam/master

Prevent CGContextDrawImage error when empty images are passed to GPUImagePicture init
Repaired the broken assertions from a previous pull request.
Swapped out silent/graceful failing for an assertion when somebody tries to pass an empty UIImage (not nil object, but nil image data)
Swapped out silent/graceful failing for an assertion when somebody tries to pass an empty UIImage (not nil object, but nil image data)
Tone curve filter: bug fix, always add the last point as it is never added.

Previously the last point would not be added correctly if the last point's x < 1.0 as there would be fewer than 255 entries in the output array. So the output points would approach but not actually get to that final point.

If the final point was y=1.0 it wouldn't matter as we go on to extend the returned array out to x = 255 with y = 1.0s. But if it wasn't then we'd miss that last value.

Also clarified the question in comments about whether the length of the points array is equal to the length of the second derivative. It is. Also made the n variable a constant in the second derivative method to ensure it.
Tone curve filter: correct application of RGB in conjunction with R, G, B channels.

The RGB adjustment must be made after the R, G and B adjustments.
Add HSB filter

Uses matrix multiplications to perform hue saturation brightness manipulation.
GPUImageMovieWriter: finishRecordingWithCompletionHandler must happen synchronously on video processing queue too

finishRecording runs synchronously, but if you call the method with a completion handler you don't. This results in a race condition to finish recording.
Add processImage variant with completion handler to get a notification if and when processing finishes.
Also build GPUImage as static framework in build.sh