Working getFormData and its tests.

getFormData now works only with objects and not arrays. This removes
the difference between JS and PHP: All arrays are the same type and
it doesn’t matter whether they have numbered or named keys. On the
PHP side, the arrays are converted to stdClass so even the numbered
ones are JSON encoded as objects without trying to create a JS array
from something that might not convert exactly as we want.

Getting rid of the array/object difference, the object on both sides
([object Object] on the JS side, stdClass on the PHP side) is now
as close to the HTML form structure as possible. HTML forms with
arrays have always string or empty keys, even if it contains a number.
Empty keys are interpolated the same way as PHP does it.

Note: PHP converts float keys to integers. JS doesn’t. This is neither
supported, nor tested.