Remove unecessary reflection hacks
Add default value for arrays

Previously, a property holding an array did not have a proper default
value in the meta-data even though the related field was initialized
properly.

An explicit support for arrays has been added. The "defaultValue" now
holds the default value for singular properties or an array of values for
array-based properties. If the value is initalized with an empty array,
the default value is an empty array as well.

Closes gh-1996
Fix typo
Polish default value for arrays

See gh-1996
Formatting
Fix YamlPropertySourceLoader flatten logic

Fix YamlPropertySourceLoader to correctly flatten keys merged from
different documents.

Closes gh-2022
Drop ShellProperties.setAdditionalProperties

Drop the setAdditionalProperties method from ShellProperties to ensure
that it is not included in the meta-data JSON. The additional properties
are usually wired in using @Autowired and it is pretty unlikely that
anyone is using the setter directly.

Fixes gh-2055
Add setIgnoreDefaultModelOnRedirect support

Add a `spring.mvc.set-ignore-default-model-on-redirect` property to
allow RequestMappingHandlerAdapter.setIgnoreDefaultModelOnRedirect to
be easily customized and change the default value to 'true'.

Fixes gh-2018
Polish POM
Add Undertow WebSocket auto-configuration

Fixes gh-2028
Add Undertow WebSocket sample application

See gh-2028
Polish WebSocket samples
Fix wrong file name
Fix error message
Smarter output detection for generated projects

Previously, specifying a simple target name for a regular project would
store the (zip) archive in a file matching the target name. Only adding a
slash at the end of the name allows to extract it as a directory. It
turns out that such convention is not easy to catch and if a simple name
is provided on the command-line, the user probably wants to create a
directory with such a name with the content of the project.

Note that if a build file is required and the name does not have any
extension, we still store a file with the required name as auto-detecting
the extension to use is not that easy.

Fixes gh-2056
Formatting
Upgrade to Undertow 1.1.1

Fixes gh-2066
Ensure undertow session cookie path is correct

Explicitly set a ServletSessionConfig when the context path is "". This
is a workaround for UNDERTOW-350 to ensure that the session cookie path
is correctly set.

Fixes gh-2065
Update 'flyway.locations' appendix documentation

Replace `classpath:db/migrations` with `classpath:db/migrations`.

Fixes gh-2063
Add LoggingApplicationListener constants

Extract some of the common property keys as constants.

Fixes gh-2068