Estimating Mixing Times: Techniques And Applications