LibWeb: Add IDL mechanism to differentiate between missing arguments and null arguments
For example, in #23184, I need to differentiate between the user passing in null for the timeline argument, or just not passing it in all together. The former leaves the timeline as null, whereas the latter results in a default being chosen. Currently, the IDL generator generates optional argument parameters as simply a nullable object, which makes it impossible to determine whether the argument was specified without checking vm.argument_count().
As @ADKaster suggested, it might be nice to have a custom attribute that indicates a different type should be used to pass this information, perhaps an Optional<GCPtr<T>>. This would allow us to avoid a big refactor or wrapping a lot of generated code, as this requirement is very niche.