Support multiple bounds on type variables

This change supports multiple bounds on type variables, which resolves #8