Fix issue with non-ASCII characters in Buffer and Stream attachments

This fixes #249.  Buffers are not converted to strings using `buffer.toString('binary')` instead of `buffer.toString()`.  `buffer.toString()` defaults to `utf8` which broken any non-ASCII characters.  

This pull request also includes a fix for an issue in features/attachments.feature that meant the node.js version wasn't detected correctly and meant that streams weren't being tested in the feature file (they were still being tested in the specs).  
@simondean Reading the docs [here][1] I see a note below that means 'binary' encoding will be removed in future versions of Node. Is it safe to use it here?

" 'binary' - A way of encoding raw binary data into strings by using only the first 8 bits of each character. This encoding method is deprecated and should be avoided in favor of Buffer objects where possible. This encoding will be removed in future versions of Node."

[1]: http://nodejs.org/docs/latest/api/buffer.html#buffer_buffer "here"