Add support for equalit constraints on associated types
Mostly non-behaviour-changing changes (style, etc.)