Adding Component Linkage

WIP Adding component linkage using Link, Unlink, and GetLink<T> very
useful for creating a common way to link components together.