Add ability to override config settings that are in arrays and maps

**Overview**

This pull request lets you override more config entries like server port and hibernate properties.  It also adds tests for the existing override feature as well as for these additions.

**Details**

Properties like listening port cannot be overridden because they are inside a list like so:

    server:
        applicationConnectors:
            - type: http
              port: 8080

This pull request addresses this by adding support for indexing into arrays.  The override for this looks like:

    -Ddw.server.applicationConncetors[0].port=9090

Additionally, properties inside maps that have '.' in the name cannot be overridden.  For example, setting hibernate properties in database config:

    database:
        url: jdbc://...
        properties:
            charSet: UTF-8
            hibernate.hbm2ddl.auto: create

This pull request also addresses this issue by adding support for properties inside maps.  The overide for hbm2ddl above looks like this:

    -Ddw.database.properties.hibernate.hbm2ddl.auto=none