ensure that we safely encode ec2 utf8 responses

The ec2 response layer assumed that all strings coming back for
results were always ascii, and exploded horribly if they weren't due
to the use of a str() function late in the game. This updates the code
to use safe_encode correctly when the object gets rendered.

This also adds unit tests for the rendering functionality in
ec2/apirequest so that we can actually feel confident that it does the
right things with unicode.

Change-Id: I348a728e3559fdbf0d1bc66616cc278c3370cd29
Closes-Bug: #1306479
Merge "ensure that we safely encode ec2 utf8 responses"