scripting: C++ API: allow user to provide MarSystemManager
PlotSink: fix crash when no output file provided
documentation: Centroid: improve description
scripting: turn a MarSystemManager reference into pointer
scripting: limit prototypes to context, pass manager to includes

Instead of registering script-defined prototypes with the MarSystem
manager, they are limited to the current context and its child contexts.

On the other hand, this allows the manager to be passed to included
scripts, thus propagating root prototype environment provided by script
client code.
Fanout: remove bloat

* Simplify code for configuration of children. Previous implementation
  was probably a copy-paste from Series where each child depends on the
  previous child.

* Remove dead code.
Fanout: exclude child output of incompatible format [fixes #36]
Cascade: disable output if incompatible output formats [fixes #37]
marsystems: add Sidechain
marsystems: add CsvSink

In comparison to PlotSink, it greatly simplifies output to file
in a form easily importable by a lot of data-processing software.
marsystems: add Ratio
marsystems: add Threshold
Ratio: output ratios of each observation to first observation
Ratio: add missing #include <algorithm>
CMake: enable Qt5 apps by default; provide instructions if Qt5 not found

This hopefully solves a set of common problems:
- Usually people want to build with Qt 5, but it is not enabled by default,
  and instructions how to enable it were not easily accessible.
  Hence rather just enable it by default.
- When Qt 5 is installed in a non-standard location (as usual nowadays),
  there is a tricky procedure to get it found by CMake.
  Hence, when Qt 5 not found, automatically provide instructions how to
  do that.
- When Qt 5 not found, instructions are automatically provided how to
  disable it if not needed.
CMake: bump required MSVC compiler version to 18

The script parser requires C++11 features only supported in
MSVC 18 (Visual Studio 2013)
CMake: warn about minimum compiler versions for C++11
scripting: implement ScriptManager

ScriptManager allows storing scripts as strings under filesystem-like
paths, and retrieving them by path. In scripts loaded from the manager,
paths to other scripts are also resolved within the manager. Thus,
the manager provides an in-memory virtual filesystem, making it easier
to deploy scripts as internal parts of executables.
apps: add "marsyas-script-cpp" tool

The tool reads script files and generates C++ code that embeds
the scripts as C strings and registers them with the ScriptManager.

This tool helps applications to embed scripts within executables.
get rid of "defaultfile" placeholder and related cruft