get_providers and start_capability allow semantic

now ~get_providers has an `include_semantic` field
of type bool which allows you to get back
providers of semantic capabilities which redefine
the given interface

~start_capability can be given an interface and
a provider which implements a semantic interface
which redefines the given interface and it will
start it
added some test reliability