adjust deserialization gambits: always return strings for strings, otherwise always return true|false for 'true'|'false', only return Number value when the string and the Number are ===
slight refactoring for clarity
freshen