I applied some minor changes, mostly coding standards in r7261
The only other suggestion I might make is to maybe have the internal stringlib classes throw Py.ValueErrors instead of InvalidArgumentExceptions which propagate up as ValueErrors anyway
To limit recursion you probably just need to surround those potential recursive calls in:
threadState.enterRecursiveCall(" in foo");
try {
recursiveCall.__call__()
} finally {
threadState.leaveRecursiveCall();
}
To handle subclasses overriding __format__ we probably just need an entry for __format__ added to src/templates/object.derived and to regenerate our derived subclasses with gderved.py in the same directory

I've implemented a few more of the items, as well as some 2.6 -> 2.7 changes (bug fixes, thousands separators and {}).
- implement 'n' formatting type for integers
- implement remaining checks for error conditions
- limit recursion level for recursive format specs
Nearly all of the tests from 2.7 pass. Notably still remaining from the original list:
- implement __format__ for floats
- implement __format__ for datetime