user_data: fix error when user-data is not utf-8 decodable
when user-data was not decodable, cloud-init would raise exception. This also changes the signature of user_data.convert_string. The 'headers' argument was never used, and woudl have been broken if it was, as it was expected to be a dictionary but then was passed in with *headers.