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.