Custom output file on the print_*() functions

In order to make the code more flexible and cleaner when testing (and
debugging) the print_*() functions can now redirect the output to a
different output file.

Change-Id: I34779220d80e037bdfe9e528ffad5187ff109ceb
Deal with unicode strings

The ironic client was trying to convert unicode strings received from the
API to ascii causing it to fail, this patch will correct it.

Change-Id: I8765abb188f758f982807a38f5d291fbc2be0da9
Closes-Bug: #1247156
Merge "Custom output file on the print_*() functions"
Merge "Deal with unicode strings"