Refactor camera classes out into their own file.

fixes #18