Make platform and render modules free-standing crates and make gfx a facade

This will force us to make the modules less mutually dependent (you can't do mutually recursive imports cross-crate).