Refactor of categories to properly fire all parents
Refactor: optimised and cleaned up publishCategories to be a single recursive function
Removed support for stop propagation and fixed message pass through to callbacks