code: function (cb, scope, order) {
              if (typeof cb !== "function") {
                  throw new TypeError("cb must be a function");
              }
  
              order = order || Tree.IN_ORDER;
              scope = scope || this;
              var ret = new this._static();
              this.traverse(this.__root, order, function (node) {
                  ret.insert(cb.call(scope, node, this));
              });
              return ret;
          }
docs: Loop through each item in the tree, collecting the value returned by the callback funciton.
  @param {Function} cb called for each item in the tree.
  Whatever the function returns is inserted into the return tree
  @param {Object} [scope=this] scope to call the function in
  @param {Tree.PRE_ORDER|Tree.POST_ORDER|Tree.IN_ORDER|Tree.REVERSE_ORDER} [order=Tree.IN_ORDER] the traversal scheme
  
  @return {comb.collections.Tree} the tree with the mapped items