walker = function walker(obj, path) {
          var ret = callback(obj, path);

          if (ret !== false) {
            for (var i in obj.children) {
              var node = obj.children[i];

              if (node instanceof Mavo.Node) {
                var ret = walker.call(node, node, [].concat(_toConsumableArray(path), [i]));

                if (ret === false && !o.descentReturn) {
                  return false;
                }
              }
            }
          }

          return ret !== false;
        }
Execute a callback on every node of the Mavo tree
If callback returns (strict) false, walk stops.
@param callback {Function}
@param path {Array} Initial path. Mostly used internally.
@param o {Object} Options:
			- descentReturn {Boolean} If callback returns false, just don't descend
			                Otherwise, if callback returns false, it stops.
@return false if was stopped via a false return value, true otherwise