basically midi controllers is a way to connect “buttons” to a computer and assign those buttons to do specific tasks. the controllers are laid out in a way that is convenient for djing but essentially you could take anything that is MIDI, such as a keyboard and assign them to functions in a djing program and dj with that.
i think for the most part, remixes and mashups are done in the studio and then played live. you can’t do too much (or at least i can’t) live besides simple effects and basic mash ups.
as for program choices, DJs generally use 1 dj software such as serato or traktor, not both. there is a growing amount of Djs that are using ableton to supplement their DJing, but ableton in itself is not a DJing software. It is more for producing.
hope that helps a bit…