Gio::Action: Add convenience methods for bool-state (toggle) actions.

* gio/src/simpleaction.[hg|ccg]: Add constructors and
  create_bool() methods that take a bool instead of a VariantBase
  for the state.
* gio/src/action.[hg|ccg]: Add get_state_bool() and
  change_state(bool).

  It might be better to put these in a derived class, but I still
  hope that the developers of the C API decide not to make this
  common case so awkward:
  https://bugzilla.gnome.org/show_bug.cgi?id=704392#c4
ActionMap: add_action(): Add more overloads
Gio::Action: Fix API for get_state() and get_state_hint().

* glib/src/action.hg: get_state() and get_state_hint() now return
a VariantBase instead of void. Bug #690134.
ActionMap, SimpleAction: Add API for creating radio actions.

* gio/src/simpleaction.[hg|ccg]:
  Add create_radio_string() and create_radio_integer().
* gio/src/actionmap.[hg|ccg]:
  Add add_action_radio_string() and add_action_radio_integer().

  With GAction, radio items seem to be one action with multiple
  possible parameter/state values, with the parameter and state
  values always being equal. This C++ API assumes that string
  and integer will be the most commonly-used types for those values.
  These values are specified in the GtkBuilder <menu> as target
  values for <item>s each having the same action name.

  I am really not sure that this is the best API we can have.
Gio::Action, ActionGroup: Fix memory problems.

* gio/src/action.ccg: get_state_bool(): Unref GVariant.
* tools/m4/convert_gio.m4: Take a copy when const GVariantType* is converted
to Glib::VariantType. Affects Action and ActionGroup. Bug #690134.
Gio::Action::get_state_bool(): Correction.

Use g_variant_type_equal() instead of comparing the pointers.
Regenerate enums defs
Regenerate functions defs
Regenerate *_docs.xml files
Gio::Action: Wrap some new methods.

* gio/src/action.hg: Add name_is_valid()
  and print_detailed_name().
Gio::DesktopAppInfo: Wrap some new methods.

* gio/src/desktopappinfo.hg:
  Add list_actions(), launch_action() and get_action_name().
Gio::Application: Add mark/unmark_busy().
Gio::File: Wrap some new methods.

* gio/src/file.[hg|ccg]: Add trash_async(), trash_finish(),
  make_directory_async() and make_directory_finish().
Gio::Menu: Add remove_all().
Regex: Add get_max_lookbehind().
Gio::MenuItem: Add set/unset_icon().
Gio: SimpleAction, ActionMap: Reorder some parameters

Put the initial state at the end so we can have a default value
where that would make sense.
MenuItem: Reimplement the constructors.

* gio/src/menuitem.[hg|ccg]: Because GMenuItem (and GMenu) do not
  have any properties and have actual code in their *_new() C
  convenience functions.
  Bug #705199 (Pete Woods)
Add interfaces to custom types before class_init.

* glib/glibmm/class.[h|cc]: Add a clone_custom_type() overload that takes
a vector of pointers to Interface_Class instances, so we can call their
add_interface() functions on the GType just after registering it, but before
instantiating the first GObject.
custom_class_init_function(): Override properties of implemented interfaces
that have not been overridden in a base class.
* glib/glibmm/interface.cc:
Interface::Interface(const Interface_Class& interface_class):
If the GObject has not been instantiated yet, then add interface_class to
the Class::custom_interface_classes vector.
* glib/glibmm/objectbase.[h|cc]: Add extra_object_base_data and
extra_object_base_data_mutex.
* glib/glibmm/objectbase.cc: ~ObjectBase(): Erase 'this' from
extra_object_base_data.
* glib/glibmm/object.cc: Default constructor and
Object::Object(const Glib::ConstructParams& construct_params): Pass the list
of Interface_Class pointers to the new Class::clone_custom_type() method
overload.  Bug #697229.
enums.pl: fixed multi-argument defines as enum values