better exception on Expr AttributeError
cleanup
added dtype method for GlobalVariable

also implies that GlobalVariable dtype argument is now required
added assertion in Expr.evaluate

simple_expr should not contain variables from other entities
remove individuals created with number=

the goal is to keep a consistent db (eg all individuals have hh_id != -1)
improved test_mixed_links

use asserts instead of show
update comments
fixed O2M link functions on a different entity with a filter

The filter was evaluated in the wrong entity and there was no test for this.
All O2M functions were affected except count()
added test for o2m.min/max value on empty groups
add TODO
compute .children as a property, instead of storing attributes in children directly

this makes the code much more readable, and makes inheritance cleaner (a child can actually call its parent __init__ method)
specific __str__ methods are not needed for CompoundExpression subclasses anymore
don't use .children when it is not necessary

because it is less readable and less efficient. It is a bit more verbose in most cases, but this is a trade-off I am ready to pay.
using __repr__ = __str__ is useless

in that case only defining __repr__ is better