CIDetector will now only init once.

Core Image Contexts/Detectors should be initted (yes that's made up) as sparsely as possible. The reason being is each time you init one you're using GPU compute and memory. This competes with a things like UIScrollViews which are very GPU intensive.

CIDetector is still very resource hungry and I've only tested this code on an iPad Air for performance where its usable, around 40fps rather than 60fps.