Apply modifiers to all objects

This patch applies the modifiers to all selectors. This change allows for commands like `window -f biggest.like` (focus the biggest like window), and queries like `query -D -d focused.free` (is the current desktop free).

Please check the direction logic. I don't know if I understood it correctly.

Window:
 * cycle                : no change
 * direction (history)  : only consider matching nodes
 * direction (distance) : only consider matching nodes
 * direction (normal)   : match or NULL
 * last                 : walk history
 * focused              : match or NULL
 * biggest              : find biggest matching

Desktop:
 * cycle                : no change
 * focused              : match or NULL
 * last                 : match or NULL

Monitor:
 * cycle                : no change
 * direction            : only consider matching nodes
 * last                 : match or NULL
 * focused              : match or NULL