Oil posts biggest annual gain since at least 2016