Simulated Annealing: Rigorous finite-time guarantees for optimization on continuous domains