Should parents be string_list_length instead of string_list.

Get rid of "throw ..." as it just bloats the code, and slows it down, or
does it? If the function truelly only throws one type of exception, then
saying so makes it faster. If it throws none, saying so does not help.
Need to bmark this with gcc 3.

Changed addFactory which returns integer value that will (should) be assigned
to objects of this class. It is up to the application to ensure this
is enforced in the constructor. I need to make the python code generate
a header which contains the value of the highest number used so far.

Now adding functionality to decoder so new methods can be registered.

addFactory returns an int, which is the number for this class.
The application must keep track of this number, and use it to register
the decoder method. The application should also ensure that this
number is used when constructing new objects of the class.

What about hierarchy assistance?
