adds HasValue and HasNoValue

As discussed here: https://groups.google.com/forum/#!topic/coypu/YSftH1cxzOA