Call monitor_from_desc in `monitor -f <mon>`
Remove setting: `focus_by_distance`

The removal is motivated by the following example:

+-------+-------+
|       |       |
|       |   b   |
|       |       |
|       |_______|
|   a   |       |
|   *   |   c   |
|       |       |
|       |_______|
|       |       |
|       |   d   |
|       |       |
+-------+-------+

Bellow is a summary of the number of steps required to reach *b*, *c* and *d* with *a* as a starting point with the associated mean and variance:

focus_by_distance         steps           mean         variance
---------------------------------------------------------------
  false                   1, 2, 3           2            2/3
  true                    2, 1, 2          5/3           2/9
Merge pull request #36 from Stebalien/fix-monitor-selection

Call `monitor_from_desc` in `monitor -f <mon>`
Remove `focus_by_distance` from the completions
Apply modifiers to all objects

Window:
 * cycle                - no change
 * direction            - only consider matching nodes
 * 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
Merge remote-tracking branch 'stebalien/apply-modifiers-to-everything'
Don't segfault.

1. Pass the correct desktop when checking if the focused desktop matches.
2. Don't assume that a last desktop exists.
2. Don't assume that a last monitor exists.
Add presel modifier

Allows selecting windows based on whether or not they are preseled.
This is useful for duplicating the old shift-can-be-transplant
behavior.

    # Usage: squish DIR
    #  - If there is a preseled window in the given direction, transplant
    #    into its node.
    #  - If the focused window is preseled, transplant the window in the
    #    given direction into it.
    #  - Otherwise, swap.

    squish() {
        {
            dir=$1
            if bspc query -W -w ${dir}.presel; then
                bspc window -w ${dir}
            elif bspc query -W -w focused.presel; then
                bspc window ${dir} -w focused
            else
                bspc window -s ${dir}
            fi
        } >/dev/null
    }
Document presel modifier.
Merge branch 'presel-modifier'