Completely revamped Camera.js, should be more efficient (and actually work)