Merged in the changes from @trou.

  This gives us a UTF-8 aware string, "UTFString" which we'll use
 where we need to.

  Specifically glibmm/ustring.h is used instead of <string>

  Note that both versions of the string library allow:

    .data()
    .c_str()

    .size()

  So there should be no actual API changes, just the different
 type being used.

  This updates #102
  Fixed compilation failure.
  I can now paste in UTF-8 characters to the prompt.

  This updates #102.

  I'm using this test-table:
        http://doc.infosnel.nl/extreme_utf-8.html
  Document glibmm requirement.

  This is part of #102.
  Added failing test case for keyboard input.

  This is part of #102.
  Show the failure more.
  Return UTFString for ::header() + ::format()

  This is part of #102.
  Compilation fixups.
  Arrow keys work in prompt() input.

  I'd inserted the is-print test before the control keys.

  This updates #102.
  Binding actions to UTF-8 characters works.

  :D

  This updates #102.

  TODO: stuff(...) fails with UTF-8.
  Don't unref the content.

  This stops attachments from being re-saved, because part of
 the message has gone away.

  Closes #118.
  Correctly initialize filter strings.

  This closes #119.
  Added missing dependency upon libglibmm-2.4
  Port UTF work from paravoid.
  Update.
  Updated again.
 Final commit.
  msg is updated.
  New hook: on_delete_message().