ADDED: all components must implement a protocol, which guarantees they store their EntityIDADDED: new unit-tests
ADDED: ALIComponent class which does nothing except implement the ALIComponent protocol, so you don't need to do it yourself. But if you're wrapping existing classes into components, you can implement the protocol manually instead