Add particles tally

Updated and refactored the Tally class to address some shortcomings, and added more tests.
SG: no spaces between parentheses and start or end of statement ie. 
```(entity_type.find("Surface") != std::string::npos)```