i3bar: fix resource leak: statusline_ctx needs to be freed first

In practice this is rarely noticeable, unless you very often switch
screen resolutions, I think.

fixes #1172
Merge branch 'fix-i3bar-leak'
Set EWMH desktop properties on startup.

Calls ewmh_update_current_desktop on startup to set the
_NET_CURRENT_DESKTOP property. Without this change the property only
gets set after the workspaces have been manipulated. Also exclude
hidden workspaces (i.e. those starting with "__" from the workspace
index.

Adds tests for startup and workspace switching.
Doc update: title right click resizes floating windows

This documentation update describes the change implemented in
905440d6d1c6d2a872e3bbb0da4c963bedaf5708
It avoids repetitive usage of the word 'also'.
Bugfix: `tree_split` should not split floating cons

Use the more robust test of `con_is_floating` for testing a container
for being floating.

fixes #1177
fix warnings: unsigned check for >= 0 is always true
handle ButtonPress events with child != XCB_NONE (Thanks xeen)

The X11 protocol description states:

  The window the event is reported with respect to is called the event
  window. The event window is found by starting with the source window
  and looking up the hierarchy for the first window on which any client
  has selected interest in the event.

For the case of urxvt with URxvt.internalBorder > 0, urxvt sets up a
subwindow for its actual contents that is placed “in the middle” of the
urxvt window. In terms of the X11 protocol, the source window is urxvt’s
window, but urxvt does not select ButtonPress events for that.
Therefore, X11 will go up in the hierarchy and deliver the event to i3
for i3’s window decoration, even though this was not actually a click on
the decoration, but into the managed window.

Therefore, we check whether child != XCB_NONE for clicks on window
decorations and then handle them as a click inside the window.

fixes #1176
t/130-close-empty-split: clean up old workspace

This hopefully increases the reliability of the test. Empty containers
created by “open” sometimes get spurious UnmapNotify events, and in at
least one run, this test failed because of such an event.
Improve drag_pointer error handling

Log errors generated by failed pointer grabs and ungrab the pointer
after failed keyboard grabs.
i3bar: Do not kill watcher on EOF

Wait for the child process to exit on its own before freeing
watcher-related resources.

i3bar shows the last received status line until the process exits.

Fixes a race condition where the termination signal was sometimes not
received to display a meaningful error message.
Move grab_all_keys to bindings.[ch]

Also add checks for binding input_type to filter bindings that are not
keyboard bindings.
man/i3.man: Update font doc to reflect i3.config
tests: sync_with_i3 before warping pointer

To be honest, I’m not entirely sure where the race condition originates
from, but when making sure that there are no pending events
(which is what sync_with_i3 accomplishes) before warping the pointer, we
have less flaky testsuite runs.

closes #1189
Send IPC window events for focus and title changes

This patch fixes ticket #1168 to extend the window IPC event mechanism
to send IPC events for window focus and title changes. The newly added
window events use the same format as the already established "new"
event.

Specifically this patch:

* Moves the ipc_send_window_event() function from src/manage.c into
  src/ipc.c and adds an argument for the change property of the event
* Updates src/manage.c to use the new function signature. To ensure
  that the "new" event does not send the same event data as the
  "focus" event, setting focus now happens after the "new" event
  has been sent
* Adds IPC focus event notification to src/x.c. To workaround a problem
  during window close when accessing the window name, a function has been
  added to query whether a window is actually attached to its parent. To
  avoid obsolete focus notification, a new field has been added to keep
  track of the focus without any interference by the click handling
* Adds IPC title event notification to src/handlers.c. To avoid
  obsolete title notification, a function has been added to determine
  whether a window title has actually changed
* Updates the IPC documentation to include the new events
* Updates testcases/t/205-ipc-windows.t to include the "focus" event
  in order to ensure the correct event sequence
* Adds two new unit tests, b/testcases/t/219-ipc-window-focus.t and
  b/testcases/t/220-ipc-window-title.t to ensure proper "focus" and
 "title" events
Fix current_workspace outputs reply member docs

The current_workspace member of an ipc OUTPUTS reply is the name of the
workspace as a string.
Move keyboard binding accessor to bindings.[ch]

Rename `get_binding` to `get_keyboard_binding` and ensure that this
function only accesses bindings of type B_KEYBOARD. Other types of
bindings (e.g. mouse bindings) will be accessed by a different function.
Update ipc COMMAND reply documentation

The COMMAND reply consists of a list of results for each command that
was parsed.
Bugfix: ipc_receive_message reply leak

The function ipc_recv_message in libi3 allocates memory to the location
of the `message` reply in src/ipc_receive_message.c with malloc and must
be freed.

This memory leak was found using valgrind.
Merge branch 'master' into next
Merge branch 'fix-recv-memleak'