reduce amount of check code on dependencies that is run

to speed up tests and things
only produce runtime deprecation warnings when there is no log context

Runtime warnings from within C++ functions aren't useful as we already have compile time warnings for that. This should eliminate some such warnings.

close #438, close #399
rename some methods (and deprecated the old ones) to make it clearer they return indexes

close #329