Simplify BooleanValue.
Couple minor fixes.

- Empty return values return a real NullValue rather than an 'undefined'
  string.
- @function/@mixin without a name and argument list raise an exception.
- So does @else without a corresponding @if.
- Don't strip out repeated properties; Ruby Sass doesn't.
- Fix a crash with an empty output document.
Added tests for all the core Sass functions.

There are some failures, which are for once helpfully marked with xfail.

Other minor fixes:

- grayscale() hasn't worked for forever due to incorrect arity.  Oops.

- The rather terse `eval_expr` is now `evaluate_expression`, and it no
  longer has a `raw` argument; instead it ALWAYS returns a CSS value,
  and the only caller that used `raw=False` now performs that logic
  directly.

- ColorValue grew an alternative and slightly saner constructor.
  Hopefully this is the first of many.