Add particles tally

Updated and refactored the Tally class to address some shortcomings, and added more tests.
Is there not supposed to be an `id()` function?