Looping em espiral

Um amigo precisava de um algoritmo que o deixasse percorrer os elementos de uma matriz NxM (N e M são ímpares). Eu vim com uma solução, mas queria ver se meus colegas SO'ers poderiam encontrar uma solução melhor. Estou postando minha solução como resposta a esta pergunta. Saída de exemplo: Para...