core: Cleanup header usage. Attempting to remove unneeded

I'm also enforcing the style of headers to be included in the order:

<ours>
<c/c++ system>
<boost/other>
math: Organize headers and separate Geometry implementation
image: Organize header usage
core: math: Fix compilation issues on Linux
fileio: Rework headers
camera: Move constructors and other stuff in source files

Header files should be shorter now.
stereo: Move code out of header into source file
tools: Rearrange headers
core: Push more code out of the headers

This most importantly breaks up Thread.h into Thread.h, RunOnce.h, and
Condition.h. This is also removed boost/thread.hpp.