Renamed Capture traits to ExternalCapture & LegacyCapture traits to Capture

Just a rename, no logic changes have taken place. As a result the overall diff is a mess, but this is easily readable if you look at the individual commits:

Capture -> ExternalCapture ( c1e5be3 )
LegacyCapture -> Capture ( 2229bbf )