Handle arrays and objects containing non-serializable types (`HTMLElement` & `function`)
Follow-up from #78, #80 we've fixed the x-data="{ el: $el }" case. We also detect functions and replace their values with 'function'.
However we get the same error in the following case: x-data="{ els: [$el], elObj: { el: $el, fn: function() {} } }" since we only do a top-level value detection pass.
Update: as part of #101 #102 nested elements/elements in arrays are considered "unserializable", ideally only the key that can't be serialized should be marked as such.
Note: having started a WIP branch, doing this within the current setup might be relatively complicated particularly in flattenData
Switching this from a bug to an enhancement since having the above data doesn't crash the app any more due to #102