Use the saved source text instead of trying to read it directly from the
source file, as the source file may be a relative path and the script
could have changed the current working directory which would make the
path invalid.
1c7233f148 broke this by moving the
initialization later, while still having the shell use the invalid
termios data.
Also, this commit makes it so *only* the init script is run without the
termios populated, as 'Shell -c ...' should still behave like running
the command in the shell.
This fixes a rendering issue where the first line of the prompt
overwrites a line with "% ...", which leaves the "%" in the terminal
if the prompt starts with "\n".
As a preparation for the next commit, we now have a reduced version of
LibShell which can be used with BuggieBox. That version will not include
LibSyntax, LibURL or LibCodeComprehension, which are all quite heavy for
BuggieBox to include in its own binary.
This change ensures that users can use LibShell easily understand this
library now, because we have an actual library directory.
In addition to that, we move the test scripts to Tests/LibShell, to
match the usual pattern of putting test-related files in the Tests/
directory.