Fix issues and improve design of the bindings_checker

The following is addressed in this commit:
1. Consistent use of x.nil? instead of x == nil
2. Missing bindings in container is a warning instead of error
3. Missing layers in a layered bindign is a warnign instead of error
4. Model is traversed using a tree iterator