implement the ray_trace function

Squashed commit of the following:

commit bb4b08465b17b02bc2b47af4f238cf3968ce24bb
Author: Maarten de Jonge <mdejonge1990@gmail.com>
Date:   Sun Feb 24 10:42:16 2013 +0100

    neaten up the ray shooting code

commit 57c06a697a858b7ba0c7aa138ad6f1e6bc0a1c82
Author: Maarten de Jonge <mdejonge1990@gmail.com>
Date:   Sun Feb 24 01:35:16 2013 +0100

    fix the ray tracing function

commit 2d138f0446610831589e30451de9edd86bf3f794
Author: Inge Becht <inge@crunchbang-vm.(none)>
Date:   Sat Feb 23 23:56:47 2013 +0100

    no longer upside down and better camera position

commit dc6ec1906a0a89b93622ac8dfe40a9cac43240e1
Author: Maarten de Jonge <mdejonge1990@gmail.com>
Date:   Sat Feb 23 22:43:47 2013 +0100

    add code to display random red circle