rendering is now performed in a separate thread. this is of little use now but lays the groundwork for adding parallel rendering. i just need to think about data ownership a little harder to make the tile renderer nice.