fix bug with attribute setting. also assume no attributes & children if none are provided.
function elements as in, when `json_to_html` encounters a function, it'll evaluate it and then use that value as input instead. global state as in, a single state accessible by all nodes that are created from a `json_to_html` call.