scanStaticMemory: small cleanup, call extractItaniumDemangledFunctionName fewer times

This both speeds up the loop and reduces debug message clutter
produced by extractItaniumDemangledFunctionName.
collectBuiltinFunctions: moved code from runOnModule
iteratorDistance: added a function for finding the distance between two iterators

As in the number of steps to take when an iterator is repeatedly ++'d
from its starting point to the end point. This is useful mainly for
debugging.
FunctionManager: moved information related to functions and function calls into a separate class

This currently includes information about replaced functions and
arguments and calls, stores and loads.
FunctionManager now handled builtlin unsafe/safe functions as well
FuntionManager: remove all remaining direct access to internals