Add support for default arguments annotated with allow-none

Support default value of NULL for tail end arguments which are
marked with allow-none.
The implementation uses a place holder object for un-supplied arguments
which are annotated with allow-none. This is then used later during
marshaling to supply NULL as the default.
Additionally support an implicit default for callback user_data
using the same technique.

https://bugzilla.gnome.org/show_bug.cgi?id=640812