Any CPD on a discrete child with discrete parents
can be represented as a table (although this might be quite big).
discrete_CPD uses this tabular representation to implement various
functions. Subtypes are free to implement more efficient versions.

