Guard methods could skip the value parameter


Guard could very well extract the value from the expression, so the value parameter is usually not needed.

Guard could simply compile and invoke the expression, but that is costly (although the overload with value argument could be there for performance-sensitive invokations).

I do have a partial implementation of a simple expression evaluator that could be used too (and is faster than compiling + executing, given that Guard cannot cache the compilation result). If that is of interest perhaps it could be added as a separate netfx project.