Render Graph Part I

__There are no functional changes in this PR__

Just refactoring, really. Preparing for big changes later.