fixed some 'throw new's
implemented syntax::DistinctSyntax::registerNames()
added semantics::NameClashError::location
implemented global case of syntax::VariableDefinitionSyntax::registerNames()