cherry-pick all AsgTools updates from 21.2 into master
Mostly I was interested in getting !20396 (merged) into master, but the sweep failed as master is woefully behind 21.2 for AsgTools updates, so I now did a cherry-pick of all updates we made since July 2017 (when @akraszna did the last big update of the package in the master).
Now this is a fairly substantial update to a fairly central package. We'll have to do this (or something like it) eventually, but we may want to apply some caution when merging this in.
Complete list of commits cherry-picked:
- d9072d1a handle EventLoop algorithms correctly as tool parents
- f4ecf492 fix setting float properties from string
- fbc70ffc fix unit test for ANA_CHECK
- fb34aec0 fix unit tests
- b270a550 change the way AnaToolHandle creates tools
- bc25f631 remove unneeded local variable
- eba4b7df switch to linking either gtest or gmock
- 43f85b93 change ut_MessageCheck to use gtest
- 3141bb8c Merge branch 'asg_tool_creation' into '21.2'
- 3d44ae24 add a command line utility to check that tools can be created
- cbb734fd change the regular expression for tool names
- 62b5af99 support reading/writing enum properties via strings
- 35d084a0 improve type casting for setting tool properties
- 3e218c20 change how OutputLevel property gets registered
- 490ca69c Numerous improvements to how different analysis algs work
- 81f972d2 Fix standalone dictionary compilation
- c6db83cc create AsgTesting package from AsgTools package
- 807af8dc cmake dependency fix for Athena
- 6bcd5bf2 add AsgTools label to all of our unit tests