Reflect std::shared_ptr nature of Node on initializers and remove constant members in nodes. Add some commentaries.
Analysis passes do not have a good reason to depend on shader_ir.h to work on top of nodes. This splits node-related declarations to their own file and leaves the IR in shader_ir.h