Working on improving the rendering cycle

Added a viewport class to handle what's actually getting rendered on the
screen at a given time. The canvas is INCREDIBLY choppy at the moment.
Hopefully future iterations of this code will fix this. I should be
adding a tile map feature in the next update. This should HOPEFULLY make
my next phases somewhat easier.