Parameterized numeric type
This is a breaking change which adds a second type parameter to Counter, which is used to actually store the count. Some existing code may fail due to the new required parameter. In particular, type discovery appears not to be able to correctly determine that N should be usize by default when creating a counter via init.