repr: print functions as `fn()`
repr: add support for trait objects

Closes #8916
repr: handle tuple structs sanely

Closes #8919
switch __field__ hack to <unnamed_field>

avoids conflict with fields actually named `__field__`
auto merge of #8927 : thestinger/rust/repr, r=huonw