Test for property placeholder with defaults

Test property placeholder with multiple locations and default values.

Issue: SPR-10619
Support EnvironmentAware ImportSelector/Registrar

Add support for the EnvironmentAware interface with ImportSelector
and ImportBeanDefinitionRegistrar implementations.

Issue: SPR-10602
Replace MaxPermSize use in build scripts

Since JDK 8 is required to build Spring framework 4, and permanent
generation is gone from Java 8, to eliminate warnings about no longer
available MaxPermSize switch, it should be removed or replaced with new
MaxMetaspaceSize switch.

This fix replaces old with new switch to limit the amount of native
memory used for class metadata.

Issue: SPR-10571
Merge pull request #286 from sslavic/SPR-10571

# By Stevo Slavic
* SPR-10571:
  Replace MaxPermSize use in build scripts
Introduce java.nio.file.Path based Resource

Develop new org.springframework.core.io.Resource implementation
backed by java.nio.file.Path. Primarily developed to allow custom
file system implementations to be used with Spring.

Since the minimum requirement for Spring is still Java 6 the
existing FileSystemResource can't be retrofitted (and no #getPath
method can be added to the Resource interface).

Unlike FileSystemResource, PathResource delegates to the underlying
file system instead of StringUtils. It has therefore slightly
different semantics. First, when building relative resources via
createRelative the relative path will apply to this path (like URL or
Unix). Second, equality is delegated to the underlying file system
provider so it's case-insensitive on Windows.

Issue: SPR-10608
Merge pull request #295 from marschall/SPR-10608

# By Philippe Marschall
* SPR-10608-rebase:
  Introduce java.nio.file.Path based Resource
Remove duplicate Javadoc line from PathResource

Remove duplicate Javadoc comment from PathResource that was
accidentally introduced during the merge.

Issue: SPR-10608