Required components now added automagically.

When a component is added to an entity, all required components not
already possesed by that entity are added aswell. This is done
recursively and handles the cases of circular requirements.