clang required explicit default constructor call

Had to explicitly add universal initializer syntax to instantiation
of a temporary const object.
Moved functions from an unnamed namespace to avoid clang problems

clang complained that 'sign' was not being used because the templated
function which used it was not being instantiated in a given object
file. However, since declaring unnamed namespaces in a header is a
bad idea anyway, I moved one function to be a static member of the
template (since it was also templated on the same type) and put
'sign' into a unique namespace.
Merge pull request #4966 from Dr15Jones/fixClangProblemsInJetMETCorrectionsType1MET

Fix clang problems in JetMETCorrections/Type1MET