node: do not abort() when changing user is not possible
p/external_: send the error message in stdout
p/external_: factorize set_filename()

This enables much cleaner code, and reusing "action"
p/external_: add the on_read trigger
t: adding configuration file for t/env
node: fix EOF for plugins

We need to send the whole EOF string, since the plugin might not end itself with "\n"
gitignore: also ignore .exe for cygwin
p/external_: do not forget to emit '\r' as last char
p/external_: add an option to remove UTF8 BOM

Quoted from Wikipedia [1]:

    Despite this, Microsoft compilers[8] and interpreters, and many pieces of
    software on Microsoft Windows such as Notepad will not correctly read UTF-8
    text unless it has only ASCII characters or it starts with the BOM, and
    will add a BOM to the start when saving text as UTF-8.

[1] http://en.wikipedia.org/wiki/Byte_order_mark