Camera refactor rebased rebased rebased

- Extracting more code from camera.js
- Unit tests
- Introduced `config/` directory 
- Removed `window.orientation`
- Responding to feedback from jdf and dmarcos