Added Camera Functionality

New functionality:
1 Camera does not require orthogonal up vector for initialization
2 Camera can now be reoriented after initialization
3 Camera can now be repositioned after initialization (does not change
orientation).

Not thoroughly tested.