Functions: improve error messages

In particular the round() error messages now match their test-cases so
all the tests pass.

Color functions now return FaultyExpression rather than null in the
event
of errors. Except for contrast() which accepts a faulty argument as per
less.js.