Fix handling of non-integer values

I found this by chasing the source for an issue raised by @rxaviers here: eemeli/make-plural.js#2

In brief, there are incorrect comparisons in at least the functions `mod()` and `_in()` that make use of `praseInt()` rather than `parseFloat()`, which end up discarding the fractional part of the inputs, so we end up with:

```sh
$ ./src/cli.js 'n = 1' '1.1'
true
```

This does not match the [syntax](http://unicode.org/reports/tr35/tr35-numbers.html#Plural_rules_syntax), which takes `n` as "absolute value of the source number (integer and decimals)" and defines the `in_relation` set by `=` as "only includes integers in the specified range".

I also added tests for the above, including the [Latvian "zero" rule](http://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html#lv), as well as a test for '1.0' (correctly) failing `i = 1 and v = 0`.