Don't switch operands for non-implemented operators.

Bot __truediv__(int, float) and __add__(int, float) raise
NotImplemented, but switching only helps in the case of addition.
Division isn't commutative so simply cast the int to float. Due to this,
lesscpy now generates the same result as lessc in the modified test
case.
Revert "Use precise grid margin values"

This reverts commit 2b2a41751e97fa14f6c37ab5aea6598645e2eb4a.
Really fix rounding errors

The result of str(float) was changed with Python3:
% python
Python 2.7.3 (default, Apr 14 2012, 08:58:41) [GCC] on linux2
>>> repr(1.1*1.1)
'1.2100000000000002'
>>> str(1.1*1.1)
'1.21'
% python3
Python 3.3.0 (default, Oct 01 2012, 09:13:30) [GCC] on linux
>>> repr(1.1*1.1)
'1.2100000000000002'
>>> str(1.1*1.1)
'1.2100000000000002'

Thus, instead of rounding the resulting CSS, don't use str() but rather
repr() to return the correct value in with_unit().
Revert "lighten(#555, 10%) should return #6f6f6f, not #6e6e6e"

This reverts commit 59b243a181349f82b2c66bd3c87fd2b3919e167d.
Use CSS class '.darken' for darken(), not '.lighten'
Add utility function convergent_round

Mimics Python3's changed rounding behavior: "The round() function
rounding strategy and return type have changed. Exact halfway cases are
now rounded to the nearest even result instead of away from zero. (For
example, round(2.5) now returns 2 rather than 3.) round(x[, n]) now
delegates to x.__round__([n]) instead of always returning a float. It
generally returns an integer when called with a single argument and a
value of the same type as x when called with two arguments."
Use convergent_round everywhere except for round() LESS function.

The LESS function round uses away-from-zero rounding.
Add utility away_from_zero_round and use it for LESS round()