[WFLY-3830] Use external-context for TIBCO EMS

Tibco EMS's JNDI provider is non-standard and accepts only CompoundName
in its lookup(Name) method while WildFly passes a CompositeName.

For such JNDI providers that accept only specific subtypes of Name, we
must instead use their lookup(String) method (that is more likely to
work as expectedi but comes with performance degradation as the whole
name would have to be parsed again).

If such a JNDI provider is configured in an external-context resource,
the presence of the org.jboss.as.naming.lookup.by.string property in the
external-context's environments with a value set to true will ensure
that the lookup(String) method is used. In any other case, the
lookup(Name) will be used.

JIRA: https://issues.jboss.org/browse/WFLY-3830