Added entity event support
Added observer functionality to an entity
Changed component to entity listener
Created updatable interface