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 branch 'master' into issue13-test