Support single- and multiple-target VTS's.
Support single- and multiple-target VTS's.

Previously, each target got wrapped in a VersionedTargetSet, but we relied
on the assumption that it was alone in its set until later, when we
grouped the single versioned targets into multi-target sets for
compilation.

This makes this single- vs. multi-target VersionedTarget distinction more
explicit and allows for more complicated logic elsewhere about which
targets to group together.

Auditors: benjy

cevaris/commons,pombredanne/commons,ericzundel/commons,nkhuyu/commons,ericzundel/commons,cevaris/commons,abel-von/commons,pombredanne/commons,atollena/commons,VaybhavSharma/commons,abel-von/commons,jsirois/commons,cevaris/commons,imsut/commons,pombredanne/commons,nkhuyu/commons,abel-von/commons,WCCCEDU/twitter-commons,brutkin/commons,jsirois/commons,Yasumoto/commons,jsirois/commons,WCCCEDU/twitter-commons,Yasumoto/commons,WCCCEDU/twitter-commons,Yasumoto/commons,brutkin/commons,VaybhavSharma/commons,brutkin/commons,ericzundel/commons,imsut/commons,VaybhavSharma/commons,brutkin/commons,cevaris/commons,jsirois/commons,imsut/commons,WCCCEDU/twitter-commons,VaybhavSharma/commons,pombredanne/commons,abel-von/commons,ericzundel/commons,atollena/commons,VaybhavSharma/commons,nkhuyu/commons,ericzundel/commons,Yasumoto/commons,cevaris/commons,atollena/commons,nkhuyu/commons,nkhuyu/commons,atollena/commons,atollena/commons,brutkin/commons,WCCCEDU/twitter-commons,abel-von/commons,pombredanne/commons,Yasumoto/commons,jsirois/commons