add template example defining fetch source hanlers
add template example defining fetch source hanlers

and add FetchOptions 'class' to pass common fetch options, as
distinguished from the kw args that come from the .source line

the 'ops' argument will always be explicitly passed to the fetch
handlers, thus it will prevent any options listed after this point
from being interpreted as positional parameters

all expected/valid field names for a given source 'type' should be
explicitly listed as parameters for the fetch handler function, with
the possible exception of parameters that it does not touch except
to forward to another handler - only then should a **kw parameter
be added for forwarding (eg; github -> git)


(SOFTWARE-3568)

matyasselmeci/osg-build,opensciencegrid/osg-build,matyasselmeci/osg-build,opensciencegrid/osg-build