Allow the 'stage' rule to traverse dependencies.
* build/virtual-target.jam
(subvariant.__init__): New parameter 'sources'.
(subvariant.all-referenced-targets): New method.
* build/targets.jam
(basic-target.create-subvariant): New parameter 'sources'.
* built/type.jam
(is-subtype): New rule.
* tools/stage.jam
(stage-target-class.construct): Traverse dependencies when requested.
(stage-target-class.collect-targets): New method.
[SVN r20534]