use suffix return type syntax
use suffix return type syntax

This avoids the need to fully-qualify all the nested types -- which are
worse in the case of templates, because then they need an extra
'typename' keyword for the things with '::' that depend on a template
parameter.

The main value of the return type syntax here is it's within the class /
function scope, so insead of 'typename ranger<T>::elements::iterator',
we can say just 'iterator', like we do in the class definition.

(#7384 related)

htcondor/htcondor,htcondor/htcondor,htcondor/htcondor,htcondor/htcondor,htcondor/htcondor,htcondor/htcondor,htcondor/htcondor,htcondor/htcondor