Use gtest as a unit testing framework.

This involves:

- Add gtest to build system
- Add tool to obtain gtest from google.code.com
- Make tests build with cxx compiler
- Make sure mbo headers can be included in cxx code.

In addition this commit also adds the ability to build mbo as a shared
library.  Finally many windows build issues were ironed out.  As a result
mbo builds now on windows with VS2013 and VS2008.