wraps output of 'on' 'off' with deferred

all 'on' and 'off' methods can returns not deferreds|promises now
menu is created recursively, link to parent added