JBIDE-17148 api enhancement for url transport utility class

JBIDE-17148 - method should be private
JBIDE-17148 - fixes as per fred's suggestions
JBIDE-17168 Test Failure on Windows: PropertiesLoaderTest
JBIDE-17175 org.jboss.tools.jst.web.kb.test failure on Windows

Comment added to Libs.getLibrary(String) explaining that path should
use OS provided separator.
[no jira] Tiny change to stacks to split logic into new protected method. Adds signature protected Stacks getStacksFromFile(File f) throws IOException
JBIDE-17198 - add support for extracting tar and tar.gz files

Moved tar content to .xpl package
JBIDE-17148 and JBIDE-17179 - outdated test case updated
JBIDE-17215 - better handling of tar.gz extracting
JBIDE-17219 NullPointerException when Template category selected in Project Properties Dialog

Checked null for the case when project templates are not
modified yet and file storing templates is missing in the project.
JBIDE-17238 - forgotten commit yields broken servertools build.  Commit enhances API of memento classes.
JBIDE-17240 - do not follow redirects
JBIDE-17232 Usage Stats for used wizards
JBIDE-17153 : Initial implem. of IPropertiesProvider

New IPropertiesProvider and its implementation
(VersionPropertiesProvider) reading IDE -wide properties from remote
resource bundle.

Provides properties depending on the context (project/product) it's
invoked in and the version of the context. Context and version are defined
by the current VersionPropertiesProvider instance.

Competing implementations can be found in the extension registry
(com.jboss.devstudio.core.central provides one implementation). The
provider with the highest priority will take precedence globally.

Consumers are expected to use :

   org.jboss.tools.foundation.core.properties.PropertiesHelper.getPropertiesProvider()

Key/Value pairs are expected to be stored using the
key|context|version=value format.

If an exact matching version is not found for the requested key, the
properties provider will try to fall back to parent versions.

The version is provided by a locally Maven-filtered file
(currentversion.properties)

So, for instance, if the key 'foo' is requested in a VersionPropertiesProvider
provided by JBDS 8.0.0.Beta2-123456-65432 then :

It will return bar if foo|devstudio|8.0.0.Beta2=bar is set.

* If no matching key/version is defined, then foo|devstudio|8.0.0 would be
queried,
* then foo|devstudio|8.0,
* then foo|devstudio|8,
* then foo|devstudio,
* then foo.

Properties are retrieved from a URI
(http://download.jboss.org/jbosstools/configuration/ide-config.properties
by default). This URI can be overridden using the
org.jboss.tools.foundation.core.config.properties.url VM argument. For
instance, to test a local properties file, the following argument needs to
be added to the JVM

In case the remote URI can not be accessed, the properties provider falls
back on a copy of that remote file embedded in the foundation core plugin.

-Dorg.jboss.tools.foundation.core.config.properties.url=file://path/to/resource.properties

Additionally, the org.jboss.tools.foundation.core.test plugin was turned into a
fragment, so we can test package visible methods.

Signed-off-by: Fred Bricon <fbricon@gmail.com>