Fulham fought back twice to earn a 2-2 draw with Crystal Palace in a highly-entertaining game at Craven Cottage.