Add "end_with_newline" option throughout and make consistent

-n, --end_with_newline added to all beautifiers

This changes to the way the command-line produces output.
Piped output and file output is now the same, and by default will not add a newline at the end.
Ending with newline is respected when passed via html beautifier to css or js beautifier.

Fixing this also exposed a number of holes tests and test framework.

Fixes #492