Fully implement singleinflight for signatures

Only create one signature when needed from multiple go routines.