Support attachments (close #189)

Strings, buffers and streams can be attached to results and embedded into reports. Currently, only the JSON formatter will output those attachments (as binary64 strings).

    this.Before(function (scenario, callback) {
      scenario.attach("some string, stream or buffer");
      callback();
    });

    // works with After hooks too:
    this.After(function (scenario, callback) {
      scenario.attach("some string, stream or buffer");
      callback();
    });

Squashed commit of the following:

commit 59d0ae456770abe97cc1606641367002fc7a4775
Author: Simon Dean <simon@simondean.org>
Date:   Tue Aug 12 22:16:01 2014 +0100

    Stop pretty formatter from outputting undefined step name. Add hidden attribute to JSON formatter

commit 25d26ca567e62e6d17c07619c3226823fc4ff0c8
Author: Simon Dean <simon@simondean.org>
Date:   Sat Aug 9 21:39:27 2014 +0100

    Removed dependency on strip-ansi.  Fixed some undefined steps in Ruby cucumber tests

    strip-ansi did not work under node v0.6 and v0.8

commit 436d4bdefe7ccfae34b42f7356ee58f7ca819e96
Author: Simon Dean <simon@simondean.org>
Date:   Sat Aug 9 19:16:44 2014 +0100

    Hide successful hook steps from the pretty formatter, summary formatter and stats journal

commit a322e3d22486baad3ae60067fe58ac6c35a1310a
Author: Simon Dean <simon@simondean.org>
Date:   Sat Aug 9 10:14:38 2014 +0100

    Remove name from hook steps

commit b552866b07e12717cb2ebf7c62043f89c379a386
Author: Simon Dean <simon@simondean.org>
Date:   Wed Aug 6 20:18:20 2014 +0100

    No longer testing Stream.Readable functionality in node v0.6 and v0.8

    Stream.Readable is not available in node v0.6 and v0.8 so it is not possible to test Stream.Readable functionality under those versions of node

commit 72c76d85f67750f86df4a11a30d09b3799ed0114
Author: Simon Dean <simon@simondean.org>
Date:   Wed May 28 23:51:51 2014 +0100

    Support attachments, also known as embeddings