fix issue with wrong number of primes output when min is specified, include max (if prime)

I came across a couple of issues with this when specifying a min and max value.   First if the min was specified I'd get an extra 0 output, e.g.
```javascript
    sieve(100, 90)
    > [97, 0]
```
and if the max was a prime, it didn't get included, e.g.
``` javascript
   sieve(101)
   > [..., 89, 97]
   sieve(102)
   > [..., 89, 97, 101]
```
The first issue was caused by flaky logic with initializing `primeCount`, the second by the loop limits.  Dropping the initialization logic, reordering the loop and changing the limit tests to `<= max` fixed both issues.