Adjust the graph analyzer to be a more generic compilation
analyzer which analyzes compilation objects (which are now
changed to be an object and not a named tuple) and provides
utility functions ontop of that object. This helps it become
possible to provide other useful analysis functions that are
not directly tied to the execution graph component but can
be provided ontop of other compilation components.
Change-Id: I2ab08db4f566d5f329d7e79b1c50ed65aad9e4b3