Fixed issue #33 re: identifier in ItemResult

The identifier attribute of an ItemResult is now being correctly
computed in the context of a test.

Thanks to Aaron Holland for pointing this out.
Fixed issue #35: numeric OV initial values

The info model said that *numeric* OVs should be set to 0 if no default
is provided. I had been setting these to NULL. This commit fixes this.

Note that this fix applies to OVs in both items and tests, though the
info model not completely clear on this as it's presented in the context
of item variables and item sessions at this point. I think test ought
to behave in this way too.
Change to expr signature valn - Fixes issue #31

The methods in AbstractExpression for checking the output signatures
of child Expressions against what was required has historically been
associating any errors to the *child* expression, rather than the
*parent*. (I hadn't realised this while inspecting the original code.)
As a result, my earlier changes to allow invalid assessments were not
realising that an expression wasn't valid until too late, which was
triggering the error noted in issue #31.

I have now moved the signature validation up one level, which fixes
this issue. The resulting code is a big uglier than I'd like, as the
validation logic also needs to apply to outer ExpressionParent classes,
which don't extend AbstractExpression and usually extend another
intermediate subclass, preventing me adding an AbsExpParent partial
impleemntation. So there's a slightly smelly static method added to
AbstractExpression to do the deed. Yuck!