Remove unnecessary train method
Fix __str__ behavior

- Adds implements_to_string decorator that makes __str__
return unicode. This fixes print statements so the output is
as expected.
Improve metaclass handling

Also, no longer need u() and b()