Update the spelling algorithm
Update the spelling algorithm

We transition from building a string to building a list of numbers
and orders. This approach makes it possible to easily implement
irregularities and exceptions for different languages.

After all the processing is done, we `join` the processed list
into a string to obtain the final spelling.

alco/numspell,alco/numspell