Implemented the detection of strict type dependencies, i.e., inheritance and interface implementation. Refactored a lot of stuff. For now, it is not possible to distinguish between inheritance and interface implementations. Tests still need to be rewritten to assert method call dependencies. Found a bug I introduced back in commit 68bb394. Will fix it in the next commit