Move the function renaming logic into the Function class, and the
MD5Hash routine into the MD5 header.
This will enable these routines to be shared with ThinLTO, which
will be changed to store the MD5 hash instead of full function name
in the combined index for significant size reductions. And using the same
function naming for locals in the function index facilitates future
integration with indirect call value profiles.
Remove the 'static' keyword here (obviously it was there before but not cleaned up) -- to avoid leaving multiple copies of the function when inlining does not happen.