[test-windows] Weird … the test misses the first line of the output

Just trying to do the first line with > instead of >>
[windows-test] I think the streams were not properly closed on put, making things fail on windows
[test-windows] Makes sure the connection remains open for the last part
[test-windows] Better cleanup of files in tests

Though almost all problems are just test related :-( The basic stuff seems to work except for closing the files in the class loader
[output] Removed some sys outs
[closing] Flush is now no-op if already closed

Since we now close the stream we do not want people that flushed the output to get an exception when they flush, this would be rather shitty. So we track the closed state and make it a no-op
[file & macros] Erroneously adapted to Windows

Ferry had made an attempt to fix the lsa/lsr test cases to make them run on windows. However, this did not work (the replace failed with a backslash as separator) and you cannot use \ in macros this way, that would require double escaping of the backslashes. So this test was not tested. Anyway, bnd always uses forward slashes. However, the result was returned with backslashes.
[test-windows] Closed resources
[test-windows] The stupid \ in windows made an invalid pattern

Made the output always use a standard path
[test-windows] Failed because / was assumed instead of \

Made the output always use /
[test-windows] Windows returns 1 when the command does not exist

Try to always return “” when there is a failure
[test-windows] System Allow fail now returns “” on failure, normal system will return null


Signed-off-by: Peter Kriens <peter.kriens@aqute.biz>
[test-windows] Repo path tests failed because of file separator

Now repo paths are always in normal form (/)

Signed-off-by: Peter Kriens <peter.kriens@aqute.biz>
[test-windows] the ‘file’ command does not exist on windows

Replaced with echo
[test-windows] Test failed but did not show the error it fails on

Signed-off-by: Peter Kriens <peter.kriens@aqute.biz>
#548 [components] Component name causes Component initialization to fail 

Cause: the name was used in a resource path, so spaces and other characters were not valid.
Solution: Create a warning and replace the name with a valid name, turning any non-symbolic names into ‘-‘

Signed-off-by: Peter Kriens <peter.kriens@aqute.biz>
#510 [baseline] Enabled -diffignore on resources

-diffignore (a selector) was already used to ignore manifest header. Is now also applied to paths. If a path matches this selector then it will not be compared.

Signed-off-by: Peter Kriens <peter.kriens@aqute.biz>