make deserializing a bit more robust

load.js references the encoding set in boot.js when loading a file.
boot.js can now register file type with different deserialization from
their actual type