Improve delegate handling in inner product hierarchies
Implement constraints for nesting inner products

The idea of this is to help prevent errors coming
from improper use of inner products.
Merge pull request #74 from raoulbq/ip_improve

Ip improve