Added at least some RANDR support.
Added at least some RANDR support.

Now keeps track of physical monitors in list monlist of struct monitor.

Subscribes to a RANDR notification and updates our view of the
physical outputs.

Two new keys: Mod + , and . to move windows back or forwards on
physical screens. Uses new functions prevscreen() and nextscreen().

New functions:

  - setuprandr(). Initialize RANDR extension.

  - getrandr(). Get resources from RANDR extenstion.

  - getoutputs(). Goes through all video outputs and stores them in
    list.

  - fitonscreen(). Before mapping a window, make sure it fits on the
    screen. Rewrote a lot of functions to use this instead of their
    own code.

  - movelim(). Move a window with physical screen limits. Rewrote
    functions to use this.

  - resizelim(). Resize a window with physical screen limits. Rewrote
    functions to call this.

  - findmonitor(). Looks for an output in list by ID.

  - findmonbycoord(). Ditto but with x,y coordinates. If coords are
    within an output, we return it.

  - delmonitor(). Removes output from list.

  - addmonitor(). Add it.

Simplified many functions.

bbidulock/mcwm,tkln/mcwm,tkln/mcwm,bbidulock/mcwm