Stop using Boost.Thread

We didn't really need it anymore due to using Qt as a threading
library, and Boost.Thread was a barrier to porting (see later
comments & commits).
Add missing include that (by coincidence) wasn't needed

(misc_structures.hpp was only actually included by another
header that had included config.hpp first.)
warning smashing

make tests share a boost-test-including header
and add an appropriate header-warning-eliminator to it.
add warning option
Add ability to use a local copy of Boost.

Motivating reasons are described in a footnote in
generate-boostbcp.py

This does increase my size of the lasercake binary itself
from about 1 MB to about 1.5 MB.  This overhead is commensurate to
or less than the size of my .so library files for the ones we link to.
Also, 1.5 MB is still pretty small for a serious GUI-program binary.
Commit a boostbcp tree based on Boost 1.50.0

This tree is directly generated from ./generate-boostbcp.py .
By committing it, people don't need to have Boost installed (for bcp)
and a downloaded source tree of Boost.  They would need both
in order to use this USE_BOOSTBCP build variant otherwise.

The tree may need to be regenerated
* if we #include more parts of Boost (generate-boostbcp.py uses
      bcp --scan to autodetect which parts of Boost are needed
      based on our current .cpp/.hpp files),
* or if we want to change the committed boostbcp version to be
      based on a different version of Boost.
Use boost-bcp build variant by default.

This version
* requires fewer build deps for people getting started
* is guaranteed to be a version of Boost (currently 1.50.0)
    that we test with (and indeed we know that versions prior to
    1.50.0 have a Boost.Random bug (Boost trac #6189) that
    leads to it returning illegal numbers in some cases,
    possibly silently causing Lasercake bugs unless we enable
    bounds-checked ints which turn it into an assertion
    failure instead.)
MinGW-based build!

Tested so far: Arch Linux mingw (not mingw64) cross-compiling.
It still has some issues
* I had to manually copy the .dlls next to lasercake.exe in order
  for Wine to run it successfully.
* When running lasercake.exe (in wine 1.5.7), the window starts
  out the wrong shape, and the UTF-8 in debug messages comes out
  garbled.
* A security compiler flag (-fstack-protector) didn't work for me,
  so I omitted it (see comments in CMakeLists.txt).

But generally, success!!
Fix build on OS X

(It still doesn't get a GUI for me there since switching to Qt
 - TODO.)
Mark Lasercake as a GUI executable when compiling for Windows.
Stick to ASCII in debug-messages.

I had encoding complications in the Windows binary output from
the UTF-8 en dash.

Debug logging doesn't need to look super nice, just readable.
gcc-4.6 fix

Remove accidental redundant use of a C++11 feature implemented
in GCC 4.7.  These data are initialized in main.cpp where the
LasercakeGLThread is created anyway.
eliminate boost header warning
Allow Ctrl/Cmd + Shift + F to toggle fullscreen (as well as F11)

+// F11 does Exposé stuff in OS X, and Command-Shift-F seems to be
+// the "fullscreen" convention there.
+// (Qt maps OSX command-key to Qt::Key_Control.)
Update INSTALL file information/experiences.
Merge branch 'portability'