Restructure AST so that the associated type definition carries
bounds like any other "type parameter".
Add in the bounds into the typeparameterdefs for assoc types
Add a 4th space for associated types defined in a trait (currently unused)
Move associated types into the Assoc space and add in the builtin bounds
from the definition (including Sized).