.tracks() API

This change implements `.tracks()` API -- you can change tracks on the fly by `obj.tracks([track_src1, track_src2])`.