Cleanups in convertPropertyMap
Cleanups in convertPropertyMap

Summary:
This change consolidates the behavior of the method
that converts the incoming property name maps.

Rather than making a bulk decision for the entire
array, each member of the mapping array is analysed
and an appropriately associative array is returned.

This allows the incoming property name maps to be
mixed associative and numerically indexed with the
exact same outcome, where before, such mixing would
make the Trait throw an AccessException about a
"missing access method for property '0'" etc.

No change to usage except for the more tolerant
input handling.

Also refactored the throwing of AccessException so
that it happens in the determineAccessFunctionName
instead - and refactored ignoring of `null` values
to the `setPopulatedProperty` method rather than have
it done in two separate places.

Note: relates to D967 in that it replaces some code
added there and thus should be merged after (and may
require a rebase then) - but the unit test data sets
added in D967 make perfect sense for this code too.

Test Plan: arc unit - everything is covered.

Reviewers: dkd-egerer

Reviewed By: dkd-egerer

Differential Revision: https://phabricator.dkd.de/D968

dkd/php-populate