recursively convert nested dicts to nested namedtuples, giving you something like 'immutable object literals' in Python