Revamped component.fork() and add component.each()/map().

component.each(callback) to iterate through all subcomponents.
component.map(callback) to create new copy of component with mapped subcomponents.