Add Google Test and Google Mock.
First attempt on windows. Need to fix things.
Add some tests.
Fix errors from prior branches.
Add operators and tests.
Merge branch 'googletest' into sm6