added NoisyOr.java and changed APPROXIMATE_ZERO in util.java

null is never a valid value for MatrixLib objects.  So hasp and hasb are redundant.  This should be:
if (b != null) this.b = b;
if (p != null) this.p = p;
if (b != null && p != null) initializeConstants();