Color functions, amount argument handling improvement.

This quick-fix is inspired by issue found in #1655:
Color functions with `amount` parameter now distinguish between `%` and non-`%` values.
The following functions are changed:
```
saturate
desaturate
lighten
darken
fadein
fadeout
fade
mix
```

Known issues: To keep things simple I reused existing `functions.js:number` goody. This function tests only for `%` and non-`%` values so for example `fade(#111, 1px)` gives same result as `fade(#111, 1.0)` with no error thrown.