Roger Federer announces retirement from tennis