nit: fix spacing
constraints are no longer associated with expressions

(this means they are treated like black boxes until the backend,
similar to nodes/connections/etc. are now)
add undefined behaviour checks 
(setting type more than once, setting type to null)
add ArrayType
refactor Literals out of org.whdl.intermediate.expressions
and into org.whdl.intermediate
refactoring
Expression->DomainObject
ExprTypeVisitor->DomainObjectTypeVisitor
removes ExprEvalVisitor
remove constraintExpr from ConstraintDefinition
add namespace separation test for definitions
Connection, Constraint, Node, Endpoint have types, can be visited
type classes for domain objects
tests for DomainObject (now 100% coverage)