Implement valid_for and convert errors to string.

Allow services a chance to implement a valid_for(), so that they can
check if required object attributes are there before the core creates
the task.

While here, convert any form validation errors to strings to be sent back.