Fixed EntityWithSources: getSource overloads, addSource & sources-setter

getSource(const size_t index) & getSource(const string &id) now both check whether the requested source is part of the source_refs group and they use "findSources" to retrieve the source.
If either the source is not part of source_refs or is not found an empty source object is returned. (The latter being a behavior yet to be implemented for all instanes).

The sources(vector<Source> ids) setter is now reducing the given ids-vector to those ids that are actually found in the block. It does so by using a new "IdsFilter" struct with "findSources".

Thus also a new filter has been added and cosmetic changes to the "findSources" functions and function-docs have been made.

Adresses issue #136