Get rid of double slashes in log output

Just a small change, because I was getting tired
of looking at stuff like

INFO:Attempting to load serialized pp database
from file:
/home/fdi/.yamcs//era-pp.map--515656386.ppdb.serialized
XtceTmProcessor: Allow specifying the start container

Before you could only start from the root sequence
container, which is loosely defined as the first
container in the XTCE sheet.

Now you can start from any container, although it's
only expected to work from a sequence container
without any base.
Share XtceTmProcessor between a Channel's PRM and CRM
Support NameDescription without unqualified name

In a recent commit, NamedDescriptionIndex was modified to index
based on the qualifiedName of a NameDescription, instead of the
name.

This broke the DerivedValuesTest. This commit partially restores
previous functionality.
Add support for sliding windows in Derived Values

Not entirely happy about the implementation, because
we're depending on non-public Rhino API.

This approach was taken because:
 - Our ScriptHelper.prev() method returns Objects. In case of numbers,
   this will return a wrapped primitive. It might also be a String, or
   a Boolean, or ...
 - When this method is called from within Rhino's JavaScript interpreter
   it is by default *not* converted to a native JavaScript type. For
   example, a boxed double, will be an object in JavaScript, not a number.
   Any further JavaScript expressions will therefore not consider it
   as a number. This results in weird behaviour:

   For example, suppose para is set to the number 2 each packet, then:
     Yamcs.prev('para', 2) + Yamcs.prev('para', 1) = "22"
   whereas we would've expected 4.
 - This could be solved on the JavaScript side by converting it back to
   a number, but then our scripts are becoming very non-user-friendly.
 - Rhino provides some non-standard API that allows enabling conversion
   to JavaScript primitives.
Support user-defined event algorithms

This commit adds event functionality to the Yamcs ScriptHelper
available from a CustomAlgorithm context.

By calling for example Yamcs.info("msg"); from within the
JavaScript, an Event "msg" will be sent to the EventViewer.

The DerivedValues_XTCE class was modified so that it would
support algorithms without any output parameters. This is still
compatible with XTCE.
XTCE: Add support for Algorithms sheet
Don't depend on Rhino API

Okay, this slightly improves the whole sliding window
feature for scripts. It's only assumed to be working
in JavaScript scripts, but at least it no longer
uses non-public java API.
Introduce XTCE Algorithms

All the sliding-window stuff and event generation that was
introduced in recent commits was mostly reverted and replaced
with the new notion of Algorithms.

This provides more flexibility, and is more compliant to XTCE
than derived values were.

Algorithms are defined in a new tab in the XTCE spreadsheet
(XML support forthcoming). Some new features:
 - Support for referring to past values
 - parameters can come from any spacesystem in the hierarchy
 - multiple out parameters are possible
Support custom parameter providers in prm

This commit also removes some old tests for ParameterRequestManager.
These tests were all marked as @Ignore and none of them really
work unless the environment is correctly set up.
Support configuration of custom parameter providers

In the yaml file it is now possible to define the list
(and order) of parameter providers to be loaded by the
ParameterRequestManager.  The only exception is the
processed-parameter provider for which no solution has
been found yet (it's still added by the Channel).

Note that the results of the AlgorithmManager are now
no longer included in the same delivery as the required
input arguments. The algorithm results pass again
through the ParameterRequestManager, resulting in a new
delivery. A side-effect of this, is that we now can have
algorithms that depend on the out of another algorithm.

Care should be taken though, as no checks for circular
dependencies are in place.

In order to maintain backwards compatible, the
ParameterRequestManager will still revert to previous
behaviour when the user does not define any providers
in the yaml file.

Note that support has been dropped for the DerivedValuesManager
Adding it as a parameter provider will not cause any
exceptions, it just won't have any effect.
PRM: Allow only one parameter provider per class
Remove cmd sysout in ReplayHandler
Allow reading custom tabs from XTCE spreadsheet

Opens up SpreadsheetLoader so that it can be extended.
The new method loadNonStandardSheets() is a hook that
is called just before loading algorithms.

Custom extensions can load any kind of data (not necessarily
parameters), as long as it is grouped in a NonStandardData
implementation. The NonStandardData interface requires
implementation of two operations:
 - Applying the fully qualified name (could have an impact
   on the aliases of any non-standard parameters)
 - How the non-standard data needs to be combined with
   non-standard data of the same type, coming from a sub
   space system.

These are the same operations that are implemented in the
conversion of a hierarchy of space systems to one XtceDb.

The mdb.yaml already provides enough functionality to enable
the custom SpreadsheetLoader for the chosen space system.
Expose some of the XTCE processing API

When reading custom spreadsheet tabs with
non-standard data, it may be useful to
re-use some of the XTCE processing
functionality. This commit exposes the
processing context members, and enables
processing of ParameterTypes from other
packages.
Fix replays without start/stop time

Replays without start/stop time crash
because the replay server generates
a faulty streamsql statement.

This used to work before, but was accidentally
changed during the proto API change. Restore
the previous behaviour.
Support multiple prm deliveries per packet processing

AlgorithmManager was recently added as a replacement for
DerivedValuesManager. It functions a little bit different
as it can cause multiple deliveries to be returned towards
a PacketConsumer listening through the ParameterRequestManager

The ParameterReplayHandler was not yet prepared for this.
Replace smartquotes from XTCE sheet with regular quotes

By default LibreOffice Calc (and possibly MS Excel as
well) uses smartquotes like “ and ”. The Rhino JavaScript
compiler does not process these as regular double quotes.
EventViewer: trunc events of more than 5 lines

Long events make the table pretty weird looking. Also, when the number
of lines makes the cell's height higher than the available window
height, the table navigates very difficultly

The full event text can still be viewed in the detailed event view.
EventViewer: fix bug when event msg is longer than 10 lines

The detailed view of an event shows all the text areas collapsed
when the event message is longer than 10 lines. The cause seemed
to be the weightx and weighty properties of the msg text area's
GBC.

This commit also fixes another small bug where the text area
would by default be always scrolled down to the bottom.