Change formatAsJSON to a template struct, named FormatImpl, so that we can use
partial specializations for groups of types that have similar implementations.
Don't encode value properties into a HREF. Just put an identifier in (the
Value's address), and we will use the CallbackFSHandler to request information
from within Javascript if and when it is required.