Added Dependencies to components

Components now have a checkDependencies() function they need to
impliment.  This allows them to specifiy other components they require
to run.  These dependences are added if they're missing when the
component is added to an Entity.