Add optional support for nested name syntax in DOM.serializeForm

e.g. <input ... name="foo[bar][baz]" value="biz" /> would output { foo: { bar: { baz: "biz" } } }