Dow and S&P 500 rally to best close of 2016 on ECB stimulus, firmer oil