Add the ability to use a function name instead of a instruction as an origin

This could be useful for serializing/deserializing a set of candidates.

Eventually CandidateMap will go away which should hopefully make it simpler
to drop this IR dependency.
Merge remote-tracking branch 'upstream/master'

Conflicts:
	lib/Pass/Pass.cpp