Bug 909542 - refactor CameraControl API, r=dhylands,jst,jesup,onecyrenus