Simplify counter implementation
- use
applyanddetected - prefer tag dispatch over template specialization
- fix InnerType <-> Arithmetic swap
- prefer boost::algortihm::icontains
- remove redundant constructor calls
- remove redundant copy c'tor and assignment declaration