Fix name
Add a domain for boolean values
Extract NodesDomain
Refactor Self of the widening domain

Use a product of the BoolDomain and the NodesDomain instead of a custom
record-based domain.  Makes reasoning about correctness easier since the
monotony of the individual domains and hence of the product is
guaranteed.