add scoped template constructor

%Java::while(...)
%CPP::while(...)

this way you can load templates from multiple groups.

prompted with ideas from Hartmut Kocher.

$templates::name(a={...},...) syntax and allow interface to be set in
antlr.g so I can tell statically when they ref a template that is not
defined. $MyTemplates::blort(...) then allow them to define:

templates Java;
templates Debug;

Those are interface names and you have to call setJavaTemplateLib()
and setDebugTemplateLib() just like setTemplateLib() for default lib.
How do you set the interface though for the default lib?

Allow: -> Java::fcall(...) syntax too.