added generate_substitution because several passes are doing this.  Need to fan out.
added binary_modifier.
removed bumper because binary_modifier can do the same thing.  Wasn't tested anyway.
slightly less confusing names for the numeric templates.
fanning out generate_substitution