Refactored the line split code (w/ tests)

It went into the new utils.js files.
Adds tests for FileInput w/ some fixes

Using slice when using process.argv.
Settings filename() to undefined at the 'end'.
Adds usage tests and a lot of fixes because of it

Using setImmediate everywhere.
Fixed when lines are longer then bufsize.
Always issues remaining bytes as line at the end.