Suporte a números por extenso sem tipo ('dois', 'cinquenta e nove', 'um milhão', etc)

Olá,

A API atual para formatação de números por extenso (https://github.com/caelum/caelum-stella/wiki/Numeros-por-extenso-core) não possui um bom suporte à números sem tipo. Por exemplo, ao modificar a classe <code>br.com.caelum.stella.inwords.FormatoDeInteiro</code> para retornar um String vazio nos diversos métodos, a formatação do número 2 retorna um string com um espaço no final (<code>"dois "</code>). Esse espaço ao final pode causar problemas em alguns casos. Na aplicação onde estou trabalhando, preciso imprimir o número por extenso entre parênteses, sem nenhum tipo (“real”, “inteiro”, “unidade”). O resultado desejado seria o string <code>"(dois)"</code>, mas o espaço retornado pela API causava a minha aplicação a exibir o string <code>"(dois )"</code> (com um espaço entre o ‘s’ e o fecha-parenteses), o que é indesejado.

A correção que estou submetendo permite que a implementação da interface <code>br.com.caelum.stella.inwords.FormatoDeExtenso</code> possa retornar <code>null</code> ou um String vazio nos métodos <code>getUnidadeInteiraNoSingular()</code> e <code>getUnidadeInteiraNoPlural()</code>. Quando esses métodos retornarem <code>null</code> ou String vazio, a classe <code>NumericToWordsConverter</code> não irá adicionar o espaço extra ao fim do número por extenso. A correção também permite que o método <code>getCasasDecimais()</code> retorne zero para forçar que o número formatado seja inteiro.

Também adicionei a classe <code>br.com.caelum.stella.inwords.InteiroSemFormato</code> para formatar números sem tipo, e uma respectiva classe de testes (<code>br.com.caelum.stella.inwords. NoFormatNumericToWordsConverterTest</code>).

Abraços