Initial implementation of colour functions.

Adds support for alpha into a subclass of ColorExpression, which then
uses
the rgba() format to output to the CSS.
Tests referenced incorrect resources (swapped)
ColorFunctions: create constants for all of the functions as a sign of optimism
Color functions: implement rob, rgba, hsl, hsla, argb.

The implementation of ARGB uses a new node called Anonymous. I copied this approach from the less.js source.
Mixin test-case output tweaked to match now implemented rgba function
Color functions: more functions implemented

Hue & spin don't quite match the sample yet.
Color functions: use HSL functions from less.js

Still doesn't resolve hue not matching in functions-color.less -> .css. I have also tried another HSL->RGB->HSL converter and got the same result, so this example may not be correct. I will check to see how less.js handles it.
Color functions: implement saturation, lightness, red, green, blue, alpha, luma, mix, greyscale
Misc functions: added color and unit functions
Don't process filter declarations.

The almost-css21.less has an example of a filter declaration that
invokes
an alpha function. Now that we've implemented the alpha function this
test
fails as it's not supposed to be a function.

Best to just not process filter declarations I think.

References issue [#90]
Color functions: change colour to store its RGB values as floating point
so we mimic the accuracy of less.js under computation such as to and
from
HSL.

Also change to use the existing formatting for numbers (didn't realise
I could pass null for originalString), which tidies up the output by
removing extra .0s on the ends of numbers.

These accuracy changes mean much more of the test case
functions-color.less
is now correct. There is one case of too many decimal places of accuracy
that I still need to address.

Also I have removed the first set of functions from the test case as
they
don't appear to be in less.js either?
Color functions: implement Contrast.

Note that there is a bug in less.js (I am submitting a bug report) in
the contrast function when a threshold is given, so I have changed the
expected result and added more test-cases.
If validation fails for the function return null, so we don't alter the
output.

A test-case to support this is coming, it was in less.js test-cases.
Color functions: Contrast now supports failing silently if the first
parameter isn't a color, to support filters I guess. Test-cases updated
with additional color testing cases from less.js.

This matches the test-case from less.js, included in
functions-color.less
now.

The bug in less.js is unclear actually, the documentation suggests that 
the threshold parameter to contrast should be a percentage but it
doesn't
work if it is. Less.js has updated their test-cases to use decimal
numbers
rather than percentages. I have included those cases, but left in the
percentage cases as we handle those "correctly", but don't match
less.js.
Color functions: hsv, hsva
Color functions: all blending functions
Color functions: tint, shade
Color functions: fix hue, saturation, lightness rounding.

I didn't notice that they round them in less.js! Now the color functions 
test-cases all pass.
Add new test-cases for functions from less.js
Math functions: update round function to support two arguments (second
being dp)