Googletest tests

Most unit tests ported to googletest framework as described in #728 - see that issue for a full list of changes and detailed description of the new testing framework. I don't recommend looking through the list of changed files here - look at the linked issue and read individual commits if a particular unit test was close to your heart and you want to see what I did to it.

Note that the 20,000 removed lines are mostly from the Stanford bunny. It will be missed.

EDIT: Tests do not compile under GCC. Working on it.
I need to remove ```extern "C"``` for fix unresolved external errors.