Explicitly include ProgramNode and ShaderNode in AttributeNodeTest (ref #9)
Program in ProgramNodeTest is const (ref #8)
Added location to AttributeNode (ref #59)
Reversed relationship of ProgramNode and AttributeNode (ref #59)
ProgramNode binds attributes to their desired locations (ref #59)