Unicode cleanups and workaround

Why has this come back?
Add scenario number to tags line

It's super useful!
Handle failfast in the Runner
Try to clean up the harvest command
Fix unit test regressions
Use blessings to produce shell_output via colored_shell_output

More DRY :)
Fix unicode but in OutputManager

cStringIO can't handle unicode strings. This was being randomly hidden
because it was sometimes being caught by a ValueError (which is the
superclass of UnicodeError). Urgh.