Added iterator methods; de-inlined at() methods
Calculate date/git revision at package time

The previous code was calculating them at cmake time, which means ``cmake
-> (changes) -> git commit -> make package'' wouldn't generate a new
date *or* git tag unless the 'make package' was preceded by another
'cmake'.

The change moves the calculation of the date & git revision into the
CPackProjectConfig.cmake.in file which gets configured during cmake,
but actually runs during cpack packaging.
Added countAgents<A>(lambda) (and related) methods

These are equivalent to agents<A>(lambda), but more efficient as they
don't have to build a vector of agents/goods/whatever to return.