Add y_get_parameter_or_null() and y_get_parameter_with_malloc_or_null()

This also removes y_get_parameter_malloc_string().

The idea is that when fetching parameters it either exists, or we return null and let the caller sort it out.
This is in certain cases marginally better than the alternative due to this failing early rather than returning something that is subtly wrong.