Drew Cameron retires from football after knee operation