add support for a file path port type
add FilePath port type
add support for value changed handlers

Some values are used to generate others. Like we'd want to serialize a file path to an image, but obviously a texture is used at execution-time.
update source node task to add a file-based option
add option to serialize context JSON to disk