some combinator fixes:

 - `optional` -- use `null` as the default value (if one isn't supplied) instead of `undefined`, to explicitly show the value in the result. update tests accordingly

 - fix silly mistake in `Itemizer` -- accessing instance's combinators in certain ways would result in the desired `this` not being used.  Fix by creating functions in an inner function scope so that they properly mutually refer (without need for `this`)