First attempt to use msvc flags to build AFIO

These likely are incorrect, and will need to be changed

Having significant problems getting AFIO to build with boost build on windows using msvc
First steps to breaking up unit tests into individual files

Need to make a test_utilities.h that takes care of all the includes and
defines for all the unit tests, and maybe even separate hpp/cpps for
evil_random_io and 1000_opens_writes_deletes.
Continued to breakup/add test files, and removed some scons files
Fixed some improper macros in Erorhandling.hpp, and made small changes to
the jamfiles for the msvc build

Most of this commit is for MSVC_build, and I mistakenly was on the wrong
branch. The branches are very close, so I'm going to merge them to get
the changes here into msvc_build.
Changed checks for _MSC_VER from > 1700 to > 1800

Many c++11 features, such as noexcept are not yet implemented in MSVC
2013, and we should check appropriately. these changes should fix that.

I can build the lib, but no the test exe from the VS2013 command line
I can build the lib and the test exe from the VS2012 IDE w/ Nov 2012 CTP
compiler

There are some linking issues, and perhaps some build/target issues using
bjam with msvc
Moved <libraries> from usage-requirements to requirements for windows
build

Additionally I removed some compiler flags that conflicted with what boost
was doing on its own. They were usually quite simmilar, so it shouldn't be
an issue.
Added the last of the unit test files from main.cpp

TODO:
1. make a test_all that includes all the unit tests
2. make changes to the test jamfile to use valgrind
3. make a bjam rule to pass via command line args to bjam to build either valgrind or regular unit tests
4. make a bjam rule to select all tests be run together or individually
5. remove main.cpp after this works
Begin creating test_all to run all the unit tests together
Missed a save on one of the test files
Tried to update jamfile apporpriately for the MSVC build

There is some issue with the linux build now that I can build on windows.
I'll need to experiment a bit with it to be sure, but maybe I need to move
the requirements back for linux? Regardless, this change should be fine on
all systems.
Updated jamfiles to work on linux again

There was a problem with the requirements/usage requirements that needed sorting. Perhaps this will also imporve the windows build.
First try at running the new unit tests on travis

Broke the tests up into individual files, and updated the travis.yml to work with the new test setup

Some tests will fail, as there are a few linking issues, hopefully with the travis logs I'll be able to determine which ones.

TODO:
1. Fix linking/bulding errors
2. Troubleshoot the travis build
3. Figure how to get the valgrind flags into the unit tests (I tried, but don't think they work)
4. Make a rule or flag to build the right tests
5. Figure out how to build the tests with rules (This maybe uneccessary, but might be cleaner.
Fixed syntax error in travis.yml
Missed a define required for individual tests to run properly
Fixed an error in the signature of evil_random_file_io, and some things in the jamfile
Made it so all the tests will run
Added SpookyV2.cpp and its include directory to properly build the torture tests
Changes to Jamfiles and test_all.cpp to build properly

I had improperly linked one of the tests, so it failed

We should consider looking into a way to consolidate the test results at the end of the test run, rather that having pass/fail dispersed through the entire output. Maybe there is a facility in Boost.Build that can do that.
Fixed the linking for the actual tests rather than just the link tests

We're experienceing a wierd error in gcc where the filesystem is not being linked. Maybe there is some bad linking in the afio jamfile? We decalred a requirement for the projects in the unit tests to use afio, so it should link properly.

We'll need furthur investigation, tomorrow
Fixed the syntax errors in the unit test jamfile

Somehow I manged to fix the travis build by breaking the travis build.  :(