… encoding options. Added unit test.
… codes, because [nil setByAddingObject] returns nil, [nil mutableCopy] return nil. That cause the customized convert function will not be invoked.
…leafs & branches (no unittests yet)
Resolved the inconsistencies with CJSONScannerErrorArrayNotTerminated. (Two versions of it were created since the same state had been represented with both a duplicate of another error code and a new unique code.) Also gave CJSONScannerErrorNumberNotScannable its own error code value. Note that the "fundamental" errors (formerly all -1) have also now been broken out into discrete values. Code values have also been adjusted to group them somewhat. Fundamental errors are from -10 to -99. Dictionary errors in the -100s. Array errors in the -200s. Strings in -300s. Numbers in the -400s. Also tweaked a name or two for consistency. It's tempting to remove "Error" from all these codes, but I'll err on the side of verbosity for now.