Automatically hide i3bar when it's unneeded.

When a workspace marked 'urgent', i3bar unhide
itself. if I want to hide it again, I must press the
modifier.This sometimes annoys me.

In this patch I change the above behavior to this:
If a urgent workspace occurs, i3bar will unhide itself;
and when you navigates away from the last urgent
workspace and there is no more urgent workspace, i3bar
will hide itself.
config-wizard: use the level 0 keysym whenever it’s unambiguous

From the code:

    Try to use the keysym on the first level (lower-case). In case
    this doesn’t make it ambiguous (think of a keyboard layout
    having '1' on two different keys, but '!' only on keycode 10),
    we’ll stick with the keysym of the first level.

    This reduces a lot of confusion for users who switch keyboard
    layouts from qwerty to qwertz or other slight variations of
    qwerty (yes, that happens quite often).
cfgparse: Write custom scripts for i3-sensible-terminal

This workaround is necessary for terminal emulators which parse -e in a
different way: some accept a list of arguments (-e command arg1 arg2 …),
some accept only one argument (-e "command arg1 arg2 …"). Therefore, we
just create a script and pass that as the one and only argument.
Add xfce4-terminal to i3-sensible-terminal

Fixes #753
config: require confirmation when exiting i3 (Thanks Felicitus)

Fixes #751
Display i3-nagbar when commands lead to an error

e.g. pressing Mod1+x when having the following in your configfile:

    bindsym Mod1+x some invalid command

will lead to an i3-nagbar instance popping up, offering you to view the
error log (which will contain parser errors from this commit on).
makefile: store $I3_VERSION in dist tarballs

This is necessary because the autobuilder uses a dist tarball to build
i3 from. If we store $VERSION, the autobuiluder binaries will not run in
developer mode, thus defeating the purpose of developer mode.
add missing \n in debug message
tests: implement --xtrace in complete-run.pl
Introduce splith/splitv layouts, remove orientation

With this commit, the "default" layout is replaced by the splith and
splitv layouts. splith is equivalent to default with orientation
horizontal and splitv is equivalent to default with orientation
vertical.

The "split h" and "split v" commands continue to work as before, they
split the current container and you will end up in a split container
with layout splith (after "split h") or splitv (after "split v").

To change a splith container into a splitv container, use either "layout
splitv" or "layout toggle split". The latter command is used in the
default config as mod+l (previously "layout default"). In case you have
"layout default" in your config file, it is recommended to just replace
it by "layout toggle split", which will work as "layout default" did
before when pressing it once, but toggle between horizontal/vertical
when pressing it repeatedly.

The rationale behind this commit is that it’s cleaner to have all
parameters that influence how windows are rendered in the layout itself
rather than having a special parameter in combination with only one
layout. This enables us to change existing split containers in all cases
without breaking existing features (see ticket #464). Also, users should
feel more confident about whether they are actually splitting or just
changing an existing split container now.

As a nice side-effect, this commit brings back the "layout toggle"
feature we once had in i3 version 3 (see the userguide).

AFAIK, it is safe to use in-place restart to upgrade into versions
after this commit (switching to an older version will break your layout,
though).

Fixes #464
ensure the layout is not L_DEFAULT anymore, even if last_split_layout is not initialized (Thanks eeemsi)
i3-migrate-config-to-v4: use layout toggle split (Thanks eeemsi)
Fix a crash when the current output cannot be determined (Thanks Tucos)

This is only a cosmetical change though, the fix for the root cause can
be found in the commits following this one.
Bugfix: fix floating coordinates when moving assigned workspaces
Bugfix: Properly fix floating coordinates when disabling outputs (Thanks Tucos)

Since the content containers are not yet updated (they will be when
rendering), we need to use the output containers’s rects instead.
floating_fix_coordinates: properly deal with negative positions
Merge branch 'fix-coords'
Merge branch 'master' into next
parser: remove debug messages

The new parser is proven by now (v4.2 was released 4 months ago), so
removing these messages will make the logfile more readable.
cleanup i3 sync protocol messages