Cleanup and modernize (C99-ize) the code

Some general code beautification:
- C99: Declare variables when they are first used, instead of at beginning
  of blocks only.
- Make NULL-checks more straightforward, instead of "if (foo != NULL)"
  simply write "if (foo)". The standard guarantees that pointer evaluate
  to "true" when non-NULL.
- Remove unneeded g_assert() statements.
- Move some #ifndef-#define blocks into dwt.c
- Some minor spacing and coding style cosmetic fixes.
- Updated copyright headers.
Ensure that new font size is initialized before use

In "font_size()", make sure that the font's "new_size" is always initialized
before using it. In the case where the font is reset to its initial size the
variable was not being initialized. This was mostly harmless, as re-applying
the window resize constraint metrics is a no-op when they are unchanged. The
fix makes the code properly correct, avoids making unneeded calls, and avoid
a compiler warning.
Fix "Open URL" button not hiding for non-URL text

When right-clicking on a piece of text that does not contain an URL,
the "Open URL" button would not be properly hidden, so make it hide
in that case as expected.
Add a 5px border to the popover container widget

This makes the popover prettier by adding a 5px border to the widget.
Change cursor colors when window gets (un)focused

This works by watching the GtkWindow::is-active property, and feeding the
corresponding OSC escape codes to the VTE widget when its value changes.
Honor focus status of window for urgency hints

The window urgency hint will be only set for the window if the window is
*not* focused when a beep occurs in the terminal. Alas, the urgency hint
is cleared when the window is focused again. This way, dwt only tries to
grab the user's attention when they are not actively using the terminal
window.
Revamp: use GtkApplication + GAction + GtkBuilder

This is a big revamp of dwt, in which:

- Browser windows are opened using gtk_show_uri(), completely eliminating
  the need for dwt's own half-assed implementation.

- Property bindings are used where possible, to avoid manually having to
  define signal-callback connections.

- Menus are constructed and connected to their actions using a GtkBuilder
  XML snippet, which greatly simplifies their construction. The menu
  definitions are also used to populate popover (if popovers are enabled).

- Action callbacks are unified as GSimpleAction instances, which are added
  to the windows and the global application menu. The same actions are used
  to handle all possible triggers: keyboards accelerators, application menu
  items, and context popover items.

As a side-effect, the following features are introduced:

- Multiple terminals windows in the same process (thanks to GtkApplication
  and GtkApplicationWindow). Launching dwt again from the command line will
  create new windows in the already running process, or create a new one
  if needed.

- An "About" dialog can be now opened from the application menu.

- Better handling of urgency hints.
Add YouCompleteMe support

Adds an .ycm_extra_conf.py for Vim's YouCompleteMe plug-in, and a Makefile
target "print-flags" to (as the name implies) get the compiler flags printed
out.
Always include hide title bar on maximize feature

The hide-title-bar-on-maximize behavior is enabled by default, and can be
enabled passing -H/--title-on-maximize.