If moving the last ws, create a new one in its place.

This seems better than refusing to move the last workspace.
tests: make t/504-move-workspace-to-output consistent with the previous commit
Fix the coords of floating cons when moving workspaces.

Fixes floating containers seemingly showing up in the wrong
workspace after moving workspaces containing floating containers.

We must *always* fix the coordinates of floating containers when
moving workspaces across outputs. That's because the coordinates
of floating containers are *not* relative to the workspaces.
tests: add test for previous commit
Implement support for chosing a 32 bit visual (necessary for pseudo-transparency) (Thanks darkraven)

You need to specify the --enable-32bit-visual flag when starting i3. This is
done because everything feels sluggish on my system when using a 32 bit visual
instead of a 24 bit visual. Fast > fancy.
Refactor the interface of commands.c

This change has two implications:

1) tree_render() will now be called precisely once for input which consists of
   multiple commands (like "focus left; focus right"). Also, the caller of
   parse_command() has to call it. This makes us able to fix tickets such as
   ticket #608 (where multiple tree_render() calls are noticable).

2) The output of a command is now a JSON array of return values of the
   individual subcommands. In the case of "focus left; focus right", this is:

   [{"success":true}, {"success":true}]

   While this is incompatible with what i3 returned before, the return value of
   commands was undocumented and therefore not subject to our API stability.
Render only once for all matching assignments (Thanks rami)

Fixes: #608
Highlight i3bar ws when changing output w/ mouse.
Merge branch 'fix-i3bar-highlight'
Merge branch 'master' into next
Implement support for user configuration of constraints on floating window dimensions.
cfgparse: also accept negative numbers
use signed integer types for the floating size constraints
tests: add a testcase for the floating size constraints
add docs/i3bar-protocol
Implement the i3bar JSON protocol (with fallback to plain text)

If the first line of the input starts with {"version":, then the input is
considered to be JSON, otherwise it is interpreted as plain text.

Only the "full_text" and "color" parts of a block are currently understood by
i3bar.
debian: add i3bar-protocol.html to docs
i3bar: compile with yajl < 2
re-add src/cmdparse.* to clean target for people who are switching from the master branch / have old build dirs
Use gettimeofday() and struct timevals instead of time()

Initially I thought using the second precision time() function is good enough,
but to make t/113-urgent.t considerably faster (>2s vs. 0.08s), we put in a
little more effort and use gettimeofday. Otherwise, this test blocks the whole
testsuite from completing much faster on modern machines :).