Fix UnicodeEncodeError in ProductVariation.__unicode__

field.verbose_name.decode(utf-8) raises UnicodeError if verbose_name can
not be encoded by ASCII. Add encode(utf-8) to fix it.
PEP8 fix
Cover both str and unicode-like field.verbose_name cases

Treat unicode-like object as standard and use a u"" to do formatting. In cases
where it is actually a str, decode it to unicode first.
Use unicode in final formatting to keep consistancy
Merge