Adding numpy count_nonzero & minor template fix

Have i missed something?
On my test machine:
- With no specialization for bool:
   - pythran bool:  2.51778507233
   - numpy bool:  2.54562497139
- with this code my code:
    - pythran bool:  1.60160303116
    - numpy bool:  2.53929495811
-With your code:
    - pythran bool:  2.45480394363
    - numpy bool:  2.46731591225

Without bool spec the static_cast(0) would work, but by specializing and using (well defined) int promotion of *begin we can avoid a conditional branching, hence the perf gain (at least it's the only explanation I can find).
Furthermore the numpy implementation specializes a lot of its function for bool, this is why we are that close to their perf with no bool specialization. So to keep the margin between their time and ours we need this 'optimization', even if it may be less readable (But the standard clearly defines this behaviour).