Initial GtkHeaderBar support

Add support for GtkHeaderBar. Based on a patch by John Stowers.
This allows setting custom titles, and adding multiple children
at either end of the header bar. Repositioning children is not
really working, due to limitations of the GtkHeaderBar API.

https://bugzilla.gnome.org/show_bug.cgi?id=700914
Add a headerbar editor

Among other things, this lets us undoably remove a custom title
widget.
Coding style cleanups
Redo sensitivity handling

And ignore show-close-button.
Fixes for actions

Make add/remove slot work without crashing. Turn 'add slot' into
a widget action, and don't offer 'remove slot' for the custom
title placeholder.
GtkHeaderBar: Fixed property sensitivity issues

The custom editor was calling glade_widget_property_set_sensitive()
directly which does not work with undo/redo.

Cleaned up the editor and adaptor so that the editor issues commands
and the adaptor->set_property() adjusts property sensitivity when
'show-close-button' and 'use-custom-title' properties change.

Also some minor changes to the gtk+.xml.in, no need for the
decoration layout property to be optional really, since the property
is a string and will not be saved if it's not set.
GtkHeaderBar: Improving child add/remove/replace support

  o Removed misguided code block in ->add_child()

    The said code block assumes that any placeholder being added
    should be added at the end 'if' anything is at the start.

    This big block of code makes things seem to work if you happened
    to save the file with one placeholder on each side (sneaky), however
    just breaks down when you save more than one placeholder at the
    beginning.

    In any case, the number of placeholders should be synchronized to
    the "start-size" / "end-size" properties (minus the number of real
    children which should be placed according to their "position"
    packing property).

  o Removed destructive calls to gtk_widget_destroy(), widgets are
    not destroyed unless the project is finalized or the final reference
    to them is part of a GladeCommand that is being cleared from the
    undo/redo stack

  o Ensure that the replacement placeholder added when ->remove_child()
    is called has the special child type set if it's the title widget
    (not sure if this is needed, but it doesnt hurt).
Switch to a single size property for GtkHeaderBar

Having separate start-/end-size properties is nice because it
makes intuitive sense, but unfortunately, the actual headerbar
child properties (position, pack-type) are not sufficient to
fully reconstruct the needed placeholders. This is causing
anomalies and possibly crashes with undo/redo. For now, keep
things working the same way they do in boxes: placeholders
are always in pack-start, and only actual children can be
moved to pack-end.