Echo command to the prompt in the output window

The old interpreters echoed the command. And it is nice to see the
confirmation that indeed the system knows you pressed enter, and it is
executing stuff. Otherwise, for many commands, the prompt just clears
and there is no friendly indication that anything else happened.
InterpreterWindow: use context injection

Rather than passing a hardcoded list of services, let's declare them
using @Parameter. That way, when we inevitably need new services in the
future, we do not have to change the API contract in order to pass them
to the constructor, but can instead declare them as new instance fields.

What new services will we need? Well, the PrefService for starters,
since we'll need to persist the interpreter history and active tab
settings.
Rename Prompt -> PromptPane, for consistency

The output pane is called OutputPane, and the intepreter pane is
called InterpreterPane. Let's call the prompt pane PromptPane.
InterpreterPane: pass the language, not the engine

The DefaultScriptInterpreter wants a ScriptLanguage, from which it will
extract a ScriptEngine. In this way, the ScriptInterpreter remains
cognizant of the language from whence it came, which is useful.
InterpreterWindow: remember the list of tabs

Unfortunately, since the InterpreterPane _has_ a UI component, but
_isn't_ a UI component, it is not enough to query the JTabbedPane for
the information. However, we will stick to our guns that composition is
superior to inheritance, and simply keep another data structure with the
needed information.
InterpreterWindow: tweak order of UI code

This will make things cleaner shortly.
InterpreterWindow: make JTabbedPane a field

This will come in handy shortly.
InterpreterWindow: persist language and histories