Converts an array of items to a tree of nested elements in an efficient way, works in both browser and node