Make task_named throw error instead of return undef
Add errors for invalid link source and destination

source cannot be 'output connector'
destination cannot be 'input connector'
Change how we introspect about io properties

input_properties -> renamed to 'known_input_properties' for clarity
output_properties -> replaced with query 'has_possible_output_property'