Fix crash when keyboard map changes and no keybindings exist.

Don't assume old tree is non-null and start rebinding it.
Specific border width/color for undecorated active/inactive windows (bug #4889)

The attached patch adds three theme options with backward compatible defaults:

undecorated.border.width
  defaults to border.width

window.undecorated.active.border.color
  defaults to window.active.border.color

window.undecorated.inactive.border.color
  defaults to window.inactive.border.color
free undecorated border colors
Strip leading/trailing whitespace when parsing colors and other strings (bug #4937)
Propagate _NET_WM_WINDOW_OPACITY to the frame window (bug #5132)
Link libobt into libobrender, as it uses things from libobt (bug #5150)

libobrender uses ObtPaths stuff, so it needs to link in libobt.
it would seem this cannot return NULL now

It will get the primary monitor if there is not monitor under the pointer. But
assert so it's clear something went wrong if this does happen. Note that there
was previously no check for the return value even though the comment claimed
there should be.
make undecorated windows place according to their undecorated state (bug #5179)

splits client_setup_decor_and_functions() into 3 functions.

1. add client_setup_default_decor_and_functions()
- called from client_get_all() to get the maximum decor/functions that will
  be available for use by the client.
2. add client_setup_decor_undecorated()
- sets up the client's undecorarted decor if the flag is set by the per-app
  settings or session state.
- we do this before setting up the frame so the frame reflects the window as it
  should be when getting placed.
3. client_setup_decor_and_functions()
- calls the above 2 to perform the same functions as before.
- added to client_apply_startup_state() so that we can ensure it was run fully
  at least once in the mapping process, since it is not called in
  client_get_all() anymore.
Add "active" and "primary" options to the <monitor> placement option for per-app settings (bug #5180)
Allow per-app settings to pick a monitor for a window without choosing a position in it.
respect the active/mouse options for monitor placement, and use ObMonitorPlace for per-app too
Remove unused variable
Fixes for gnome-session 3.

We run by default with a panel (default gnome-panel) and then run Openbox
without any panel if one cannot be found.

- Adds a fallback session for if a panel (default gnome-panel) not found.
- Removes notifications as a requirement.  Seems to be a legacy thing judging
  from the ubuntu .session files.  Notifications are being provided by
  notify-osd on modern systems, and you can't check for its presence in
  gnome-session (gnome-classic.session always fails because it looks for it, so
  ubuntu falls back to gnome-fallback.session).
Check the return value for launching the startup command.

Copy/paste error?
Hear screen resizes when they don't change the root window (cloning)
Fix maximized windows and such after screen resizings
ignore .rej files
Fix window width/height going less than 1 on some platforms (bug #5246)
Quiet build outbut on by default
Fix bootstrapping, forgot to change WANT_AUTOMAKE to 1.11 in previous commit