Continue work on material structure

- Switch to instance approach
- Materials now have Game
- Id is now solely used for the protocol, name is required now

Signed-off-by: Chris Sanders <zidane@outlook.com>
Remove ParentMaterial concept

Now all materials can natively have children but children are prevented
from having children themselves

Signed-off-by: Chris Sanders <zidane@outlook.com>
Remove child concept

Material now has an, optional, getChildId which can be overriden and the
appropriate meta provided.

Signed-off-by: Chris Sanders <zidane@outlook.com>
Merge branch 'master' into material
Further work on material management

Signed-off-by: Chris Sanders <zidane@outlook.com>
Merge branch 'master' into material
Merge branch 'master' into material
Update for flow-networking changes

Signed-off-by: Chris Sanders <zidane@outlook.com>