Exponential-time algorithms for NP problems: prospects and limits