Teenager Joao Fonseca came back from two sets down to take out 24-time Major champion Novak Djokovic.