Unitarity-based techniques for one-loop calculations in QCD