Fix bugs and add unit tests for BSEARCH()

Also adds running unit tests to the release/go script so we can be
sure that all tests pass before we make a release.
Use the BSEARCH() macro in overlap placement

Currently the code rolls its own binary search, but now that we have
a well-tested binary search implementation in obt/ we can make use
of that.
Created a 'GrowToFill' action. (Bug 3356)
Clean up the FillToEdge action implementation

This extend the client_find_resize_directional() method to support
two growing modes, and return a bool for whether it was able to grow/shrink.

The client_find_resize_directional() method now takes an enum instead
of a bool, with two growing modes. The old mode which always tries to
grow, the a new mode that will only grow if the client's edge is not
already at a grow stopping point (ie against the edge of another window).
Allow FillToEdge to grow when all its edges are blocked.

This change points out how useless the return value from client_find_resize_directional()
was, so it also removes that.

When all edges are blocked, the FillToEdge action will try to grow all four edges agin
without blocking any of them on their current edge. This more closely matches the
behaviour of the GrowToEdge action.
Portuguese update for openbox
Add a strict option to the ToggleShowDesktop action

When the strict option is used, normal windows are not able to show themselves
while showing the desktop.
Added missing break statement (Bug 6043)
Fix gcc warnings in screen.c
Merge remote-tracking branch 'danakj/work'

Conflicts:
	.gitignore