componentify and fix 2 bugs

 - added component.json
 - fixed an issue with event emission order on add
 - made shift behave like pop