Modularised providers and start-stop methods for server

The idea in this branch is twofold:
(1) new capability to start & stop the server including the http/ws interface and the providers so that the server can be used as part of a client-server integration test.
In order to do that we need providers with start & stop methods, which was no so straightforward to do. In the course of implementing that I created
(2) new capability to create by configuration providers that are composed of simple, self contained Transformers (not unlike piping unix commands together) like filestream (read from file), cut the stream to lines, translate the data to json, translate the raw json to signalk.

DO NOT MERGE YET, I only created the pull request to host the related discussion.