Move some more code down to the generic base architecture layer, related to resolving variable values for substitution on demand.  Also modified size-related suffix code e.g. '.B' to be non-M68K specific, so as to handle the more complicated '.S.PS' MIPS variations (does not actually work for them yet, just does not error on them).
The size value propagation was still M68K specific, as that has one character sizes (B,W,L).  Made it even more generic to handle arbitrarily long size nams.
Did some variable renaming for better clarity.  Previously variable names were refered to as 'chars', which they are, but the code was getting confusing.  There is more renaming to be done, but it requires code refamiliarisation first.
Better Python to enumerate characters in a string.