Cleanup preprocessor
There were a few source files with the pattern
-#ifndef _CPP_STRING
#include <string>
-#endif
This is effectively just a second include guard around the include, which of course has its own include guard.
At the same time I removed three workarounds, one for Boost < 1.3 and one for GCC versions older than 3.0.
Cheers,
Stewart