Decimal part of units can be lost when coercing from a string

In `nodes.Unit`, `parseInt()` [is used](https://github.com/LearnBoost/stylus/blob/d0cbf5ea8651bd4f61b598d6ddca598099f27c85/lib/nodes/unit.js#L172)  for coercing from a string node, discarding the decimal part. 

This can lead to untrue results in operations with mixed operands:

```stylus
body
  foo (5 - "5.1") != 0
  foo !(5 == '5.1')
  foo 5 != '5.1'
  foo 5 < '5.1'
````

Expected:

```css
body {
  foo: true;
  foo: true;
  foo: true;
  foo: true;
}
```

Actual result:

```css
body {
  foo: false;
  foo: false;
  foo: false;
  foo: false;
}
```