New Camera class.

Camera class updated. By using points instead of direct coordinates,
it now looks more in tune with the rest of the code. It can also now
be created by specifying a point and a width and a height. The test
suite is more comprehensive too.